【发布时间】:2020-05-08 15:37:26
【问题描述】:
我有一个字符向量和一个 data.tabe:
library(data.table)
pselection <- c("12345" , "2345", "12345678")
dt <- data.table("title"=c("First title", "Second Title", "Third Title", "Fourth Title"),
"sha"=c("12345", "2345; 66543; 33423", "22222; 12345678;", "666662345; 444"))
现在我想根据; 分隔符选择部分匹配sha 列的data.table 的所有行。所以基本上我想要这个输出:
title sha
1: First title 12345
2: Second Title 2345; 66543; 33423
3: Third Title 22222; 12345678;
我该怎么做?
我试过了:
selected <- dt[sha %in% pselection]
但它只选择完全匹配并且使用%like% 表达式只是为了匹配一个不多的表达式。连接到正则表达式(如paste(pselection, collapse="|"))是不可能的,因为我的选择是> 10.000。提前感谢您的帮助!
【问题讨论】:
-
您需要使用 data.table 还是只是在寻找选择部分字符串匹配的解决方案?
-
使用 data.table 会很好,但任何足够有效的解决方案都值得赞赏!
标签: r data.table