我有一个gsub函数,可以替换列中的文本,效果很好。但是,我现在面临一个问题,即我希望替换列中的某些文本,但仅限于特定条件,否则我希望保持原样。
现有代码如下所示:
myfulldata$Waypoint <- gsub("Old", "New", myfulldata$Waypoint, fixed = TRUE)
我现在希望有一个 if 语句,如果 Sales.Year 值 = 2018 和 Sales.Month=1 或 2,我只用新文本替换旧文本。if 语句可以嵌套在公式中吗?
我已经查看了 gsub 公式中的异常情况,但这似乎仅适用于被替换列中的特定文本。
您可以使用ifelse
语句有选择地替换,如下所示:
myfulldata$New_Col <- ifelse(myfulldata$Sales.Year == 2018 & (myfulldata$Sales.Month == 1 | myfulldata$Sales.Month == 2),
gsub("Old","New",myfulldata$Waypoint, fixed=TRUE),
myfulldata$Waypoint)
我创建了一个新列,它将在其中检查条件,然后仅在条件匹配时才将其替换为gsub
输出。否则它将保持不变