【发布时间】:2020-03-19 15:30:13
【问题描述】:
您好,我想为包含特定字符串的行添加某个值。 例如这有效:
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")
它不会抛出错误,但对数据框没有任何作用。有什么问题? 谢谢
【问题讨论】:
-
一定要创建函数并使用循环吗?
-
df[grepl("acting|did not|Somehow", df$Q), "QG] = "SP" -
使用:
paste0(c("acting", "did not", "Somehow"), collapse = "|")创建模式