我正在尝试在字符串中搜索字符
以下是我试过的代码
if grepl("<ERRCA0006>",df$t) {
cmnt = "Appfabric"
}
错误:“}”中的意外“}”
答案 0 :(得分:1)
我认为如果您只想在datf $ t中测试“”的任何外观,第一个答案就可以了。但是如果你想让cmnt测试datf中的每一行,我想你可以用ifelse()函数来做这个。
cmnt <- ifelse(grepl("<ERRCA006>", datf$t), "Appfabric", "NotFabric")
或者你可以使用for循环。
for (i in 1:nrow(datf)) {
if(grepl("<ERRCA006>", datf$t[i]) {
cmnt <- "Appfabric" } }
答案 1 :(得分:0)
我认为这可以解决您的问题。 它检查向量中的任何元素是否包含错误并相应地分配cmnt。
if(sum(grepl("<ERRCA0006>",df$t)) > 0){
cmnt = "Appfabric"
}
答案 2 :(得分:0)
您也可以使用sapply
函数代替循环。在这里,我举一个检查A
字符并返回this is an A
评论的示例。输出是一个列表,但如果需要,我们可以将其更改为字符向量(最后一行代码)
df <- data.frame(t = sample(LETTERS[1:5], 10, replace = T))
cmnt <- sapply(df$t, function(x) if(grepl("A", x)) return("this is an A"))
cmnt <- as.character(cmnt)