【问题标题】:Error: finding a string within another specific string [R]错误:在另一个特定字符串中找到一个字符串 [R]
【发布时间】:2017-09-29 03:31:15
【问题描述】:

我有一串字母:

M <- "ABHJKFRTUIOKOPJNHGBQETYUODIOFGHJSDFKHLKJIOEQBALKFJPA"

我想看看它是否包含一个小字符串:

S <- "FGHJ"

我在 R 中尝试了以下代码:

found <- ifelse(grepl(S, M), "Found","Not Found")

但我收到以下错误:

In grepl(S, M) :
  argument 'pattern' has length > 1 and only the first element will be used

S 和 M 都是类字符。

也就是说,如果找到字符串,有没有办法计算出 S 在 M 中开始和停止的位置并记录这两个位置?

我相信这很明显....

【问题讨论】:

  • 感谢@jogo - 已编辑。
  • 您没有向我们提供您的 S 的实际值:您的 S 变量中有不止一项。试试length(S),你会看到的。以上三行不会产生错误。

标签: r string contains


【解决方案1】:
> M = "ABHJKFRTUIOKOPJNHGBQETYUODIOFGHJSDFKHLKJIOEQBALKFJPA"
> S = "FGHJ"
> grepl(S, M)
[1] TRUE
> library(stringr)
> str_locate(M, S)
     start end
[1,]    29  32

这有帮助吗?您的示例不可重现...

【讨论】:

  • 更新我的评论。它在单独使用 grepl(S, M) 时确实有效,但是当试图强制将其命名为“找到”时,它给了我同样的错误
  • @joeblow -- 为我工作。我同意上面的大卫——你没有向我们展示你的变量的实际值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 2018-05-28
  • 2013-05-07
  • 1970-01-01
相关资源
最近更新 更多