r语言 - 使用 if 语句的 gsub 函数



我有一个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输出。否则它将保持不变

最新更新