作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这两个 df:
ID1 <- c("TRZ00897", "AAR9832", "NZU44447683209", "sxc89898989M", "RSU765th89", "FFF")
Date1 <- c("2022-08-21","2022-03-22","2022-09-24", "2022-09-21", "2022-09-22", "2022-09-22")
Data1 <- data.frame(ID1,Date1)
ID <- c("RSU765th89", "NZU44447683209", "AAR9832", "TRZ00897","ERD895655", "FFF", "IUHG0" )
Date <- c("2022-09-22","2022-09-21", "2022-03-22", "2022-08-21", "2022-09-21", "2022-09-22", "2022-09-22" )
Data2 <- data.frame(ID,Date)
我试图获得完全匹配。如果两个 df 中的 ID 和 Date 相同,则为完全匹配,例如:“TRZ00897”“2022-08-21”是完全匹配,因为它存在于两个 df 中
用下面一行代码:
match(Data1$ID1, Data2$ID) == match(Data1$Date1, Data2$Date)
输出是:
TRUE TRUE NA NA TRUE FALSE
显然最后一个不应该是 FALSE 因为“FFF”“2022-09-22”在两个 df 中。它为 FALSE 的原因是,日期“2022-09-22”已经出现在索引位置 1 的 Data2 中。
match(Data1$ID1, Data2$ID)
4 3 2 NA 1 6
match(Data1$Date1, Data2$Date)
4 3 NA 2 1 1
所以最后,索引位置 6 和 1 不相等 --> FALSE
我怎样才能改变这个?我应该使用哪个函数来获得正确答案。
请注意,我不需要合并或加入等。我真的在寻找可以检测这些模式的函数。
最佳答案
合并列然后匹配:
match(paste(Data1$ID1, Data1$Date1), paste(Data2$ID, Data2$Date))
# [1] 4 3 NA NA 1 6
要获得逻辑输出,请使用 %in%:
paste(Data1$ID1, Data1$Date1) %in% paste(Data2$ID, Data2$Date)
# [1] TRUE TRUE FALSE FALSE TRUE TRUE
关于r - 如何在不合并的情况下匹配多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74206233/
我是一名优秀的程序员,十分优秀!