繁体   English   中英

根据 R 中一列下另一个数据帧值的最后两位数字过滤一个 dataframe

[英]Filter one dataframe based on the last two digits of another dataframe's value under one column in R

表 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______)

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

我们可以使用str_replace-替换为. 将“data_frame”中的“ID”与“my_ColData”中的“ID”相匹配

library(dplyr)
library(stringr)
data_frame %>% 
       filter(ID %in% str_replace(my_ColData$ID, '-', '.') )

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

library(dplyr)
library(stringr)
data_frame %>% 
  filter(str_sub(ID, -2) %in% str_sub(my_colData$ID, -2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM