【问题标题】:R grepl inside loopR grepl 内循环
【发布时间】: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 = "|") 创建模式

标签: r loops grepl


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-02-15
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多