Все становится очень легко, когда вы разделяетесь на более мелкие проблемы.Здесь я создаю вектор test
, который вы можете заменить в своем коде на df$your.column
.
test <- c("charge", "charges", "container charges", "store charges", "something else")
Сначала вам нужно определить различные условия следующим образом:
haschargeandnotcharges <- grepl("charge", test) & !grepl("charges", test)
hascontainerchargesorstorecharges <- grepl("container charge", test)|grepl("store charge", test)
hasnocharge <- grepl("charge", test)
Затем вы можете применить свои различные правила
result <- ifelse(haschargeandnotcharges, gsub("charge", "charges", test), test)
result <- ifelse(hascontainerchargesorstorecharges, gsub("charges", "charge", result), result)
result <- ifelse(hascontainerchargesorstorecharges, gsub("charges", "charge", result), result)
result <- ifelse(hasnocharge, paste(result, "charges"), result)
rbind(test,result)
[,1] [,2] [,3]
test "charge" "charges" "container charges"
result "charges" "charges charges" "container charge charges"
[,4] [,5]
test "store charges" "something else"
result "store charge charges" "something else charges"
В следующий раз попробуйте дать нам воспроизводимый пример, чтобы мы могли вам помочь.