【问题标题】:Apply regular expressions to compare values in data frames of different length in R应用正则表达式来比较 R 中不同长度的数据帧中的值
【发布时间】:2018-09-26 15:13:09
【问题描述】:

我正在尝试应用正则表达式来匹配 R 中两个不同长度的数据帧中的值。我的目标是仅保留与两个数据帧中的正则表达式匹配的值。

数据集的一个示例是:

a<-c('item1','item2','item4')
b<-c('item1','\t item2','item3','item4')

我尝试做grepl(a$. , b$.),但它只适用于“第一”行。只是为了解释一下,两列中的值具有共同的内核名称,但可能存在细微差异,因此我确实需要某种正则表达式。

如果代码有效,我会得到新对象“c”(也可能是 a 的过滤版本)将等于

c<-c('item1','item2','item4')

愿你平安

【问题讨论】:

  • 尝试使用grep(paste(a, collapse = "|"), b, value = TRUE),但这里的pattern 是“a”向量。因此,返回的值将是 'b' 的值
  • 谢谢!它确实解决了我的问题。为你喝彩

标签: r regex dataframe variable-length


【解决方案1】:

我们可以 paste 将 'a' 的元素转换为单个表达式模式,并在 grep 中使用它

grep(paste(a, collapse = "|"), b, value = TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多