首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grepl搜索文本

使用grepl搜索文本
EN

Stack Overflow用户
提问于 2016-05-15 19:02:51
回答 3查看 86关注 0票数 0

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

下面是我尝试过的代码

代码语言:javascript
复制
if grepl("<ERRCA0006>",df$t) {
cmnt = "Appfabric"
}

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

EN

回答 3

Stack Overflow用户

发布于 2016-05-15 19:48:01

如果你只想测试datf$t中任何"“的出现,我认为第一个答案很好。但是,如果你想让cmnt测试datf中的每一行,我认为你可以用ifelse()函数来做这件事。

代码语言:javascript
复制
 cmnt <- ifelse(grepl("<ERRCA006>", datf$t), "Appfabric", "NotFabric")

或者,您可以使用for循环。

代码语言:javascript
复制
for (i in 1:nrow(datf)) {
    if(grepl("<ERRCA006>", datf$t[i]) {
        cmnt <- "Appfabric" } }
票数 1
EN

Stack Overflow用户

发布于 2016-05-15 19:44:14

我想这会解决你的问题。它检查向量中是否有任何元素包含错误,并相应地分配cmnt。

代码语言:javascript
复制
if(sum(grepl("<ERRCA0006>",df$t)) > 0){
   cmnt = "Appfabric"
}
票数 0
EN

Stack Overflow用户

发布于 2016-05-15 20:12:20

你也可以使用sapply函数来代替循环。这里我给出了一个检查A字符并返回this is an A注释的例子。输出是一个列表,但如果需要,我们可以将其更改为字符向量(代码的最后一行)

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37237450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档