使用grepl搜索文本

时间:2016-05-15 11:02:51

标签: r

我正在尝试在字符串中搜索字符

以下是我试过的代码

if grepl("<ERRCA0006>",df$t) {
cmnt = "Appfabric"
}

错误:“}”中的意外“}”

3 个答案:

答案 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)