使用 grepl for 循环

wcb*_*own 0 loops for-loop if-statement r grepl

我正在尝试使用 for 循环来遍历数据框,查看观察是否包含列中的某个字符串(即,它应该在列Content 中包含“无规律” ),并在不同的列中生成基于在结果上。

如果它确实包含由grepl函数的结果为True标识的字符串,则观察结果应在Effectrp列中包含“Permissive” ;否则,它应该说“限制性”。

我不太确定我做错了什么......任何帮助将不胜感激!

for (i in 1:nrow(ldb)){
  if (grepl('no law', ldb$Content[i], ignore.case = TRUE)) == TRUE {
    ldb$Effectrp[i] = 'Permissive'
  } else {
    lab$EffectTR[i] = 'Restrictive'
  }
}
Run Code Online (Sandbox Code Playgroud)

Lyn*_*n L 6

您甚至不需要为此使用 for 循环,因为grepl如果应用于向量,则会返回一个向量。你可以尝试类似的东西

ldb$Effectrp <- 'Restrictive'
lbd$Effectrp[grepl('no law', ldb$Content, ignore.case = TRUE)] <- 'Permissive'
Run Code Online (Sandbox Code Playgroud)

(并且,如上一个答案中所述,请注意数据框和列名称中的拼写错误。)