【问题标题】:match part of string in R匹配R中字符串的一部分
【发布时间】:2014-07-20 08:52:02
【问题描述】:

我遇到了在其他编程语言中通常很容易解决的问题。

我想测试一个字符串是否在 R 中的另一个字符串中。例如我尝试过:

match("Diagnosi Prenatale,Esercizio Fisico", "Diagnosi Prenatale")
pmatch("Diagnosi Prenatale,Esercizio Fisico", "Diagnosi Prenatale")
grep("Diagnosi Prenatale,Esercizio Fisico", "Diagnosi Prenatale")

没有一个有效。为了使它工作,我应该先用 strsplit 拆分第一个字符串并提取第一个元素。

注意:我想在字符串向量上执行此操作以接收是/否向量,因此在我编写的函数中应该使用向量而不是单个字符串。但当然,如果单个字符串不起作用,则将它们的完整矢量图像化......

有什么想法吗?

【问题讨论】:

  • 一些快速说明:(1) 你不会使用matchpmatch 来完成这个任务——这些是为了在列表中匹配。 (2) 你错误地使用了grep——模式是第一个参数,文本是第二个。

标签: string r substring


【解决方案1】:

试试grepl

grepl("Diagnosi Prenatale","Diagnosi Prenatale,Esercizio Fisico" )
[1] TRUE

您也可以使用字符向量来执行此操作,例如:

x <- c("Diagnosi Prenatale,Esercizio Fisico", "Diagnosi Prenatale")
grepl("Diagnosi Prenatale",x)
#[1] TRUE TRUE

【讨论】:

  • 好答案。我会注意到 OP 错误地使用了grep,这就是他的代码不起作用的原因。我经常被模式是第一个参数这一事实所迷惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
相关资源
最近更新 更多