与R的字符串比较

时间:2019-01-22 12:41:40

标签: r regex string merge

我有两个数据集,我想用一个公共键(字符串)链接(inner_join)。问题在于,在两个数据集中的一个数据集中,密钥不完整,但是另一个密钥中包含了这个不完整的密钥,如以下示例所示:

key for 1st dataset: PV955--075P412171042-- 
and for the 2nd:     PV955--???P412171042--

???代表缺少的数字,所以我的问题是我们是否可以像字符串比较/包含一样检查我的第二个键的字符是否包含在我的第一个键中,如果是,则对此进行连接?

Idk(如果问题很明显),谢谢您的回答。

2 个答案:

答案 0 :(得分:0)

不查看数据很难回答,但是您可以尝试以下操作:

library(stringr)
> str_detect("075P412171042","P412171042")
[1] TRUE

答案 1 :(得分:0)

在带有正则表达式的基数R中:

key1 <- "PV955--075P412171042--"
key2 <- "PV955--???P412171042--"
key2re <- gsub("--...", "--...", key2)
grepl(key2re, key1)
## [1] TRUE

用点代替“-”后的3个未知字符,点表示正则表达式中的任何字符。 然后grepl检查两个字符串是否匹配。