R grepl内部循环

R grepl inside loop

您好,我想向包含特定字符串的行添加特定值。 例如,这有效:

df[grepl("acting", df$Q), "QG"] <- "SP"
df[grepl("did not", df$Q), "QG"] <- "SP"
df[grepl("Somehow", df$Q), "QG"] <- "SP"

但是我想把所有东西都放在一个循环中以减少代码。 这不起作用(并且不明白为什么)

assignSubgroup <- function(keywords, group){
  for(k in keywords){
    df[grepl(k, df$Q), "QG"] <- group
  }
}

assignSubgroup(c("acting", "did not", "Somehow"), "SP")

它不会抛出错误,但不会对数据框执行任何操作。有什么问题? 谢谢

使用基本 R 且没有函数或循环:

df$QC[grepl("acting|did not|Somehow", df$Q)] <- "SP"