1

表 Data_frame 有一个 ID 列,其中包含 1000 多个参与者的信息,例如“Sample_LI.01”

My_ColData 还有一个 ID 列,其中仅包含 40 个参与者的不同信息,例如“Sample_LI-01”。

我想使用 My_ColData 中的 ID 列来过滤 Data_frame 表。但是,您可能已经注意到 ID 的格式略有不同。我想知道是否可能基于最后两位数字进行过滤的最佳方法?

到目前为止我有一个代码,看起来像

data_frame %>% filter (ID %in% my_ColData$ID, if______)

不知道在这种情况下要写什么。还是有更好的方法来实现我的目标?任何建议,将不胜感激。

4

2 回答 2

2

我们可以使用str_replace替换-with.来匹配 'data_frame' 中的 'ID' 和 'my_ColData' 中的 'ID'

library(dplyr)
library(stringr)
data_frame %>% 
       filter(ID %in% str_replace(my_ColData$ID, '-', '.') )
于 2021-05-17T17:38:23.443 回答
2

我们可以str_sub用来检查最后两位数字

library(dplyr)
library(stringr)
data_frame %>% 
  filter(str_sub(ID, -2) %in% str_sub(my_colData$ID, -2))
于 2021-05-17T17:53:55.023 回答