[英]Comparing values in multiple columns in R dataframes & updating missing values
[英]R comparing multiple values across dataframes
我有一个 dataframe (X) 看起来像
ID1 ID2
1 2
2 3
3 4
另一个(Y)看起来像
ID GROUP
1 5
2 5
3 6
4 6
我正在尝试比较和计算 dataframe X 中位于同一行的 ID,它们是否在 dataframe Y 中列出的同一组中?
例如:
ID1 ID2 SAME.GROUP
1 2 YES
2 3 NO
3 4 YES
我在匹配一列之前已经完成了此操作,但无法弄清楚如何同时执行这两个操作。 提前致谢
您可以使用match
:
transform(X, SAME.GROUP = Y$GROUP[match(X$ID1, Y$ID)] == Y$GROUP[match(X$ID2, Y$ID)])
ID1 ID2 SAME.GROUP
1 1 2 TRUE
2 2 3 FALSE
3 3 4 TRUE
数据
X <- read.table(header = T, text = "ID1 ID2
1 2
2 3
3 4")
Y <- read.table(header = T, text = "ID GROUP
1 5
2 5
3 6
4 6
")
我们可以使用连接
library(data.table)
setDT(X)[dcast(setDT(Y), GROUP ~ paste0("ID", rowid(GROUP)),
value.var = "ID"), SAME.GROUP := "YES", on = .(ID1, ID2)]
X[is.na(SAME.GROUP), SAME.GROUP := "NO"]
-输出
> X
ID1 ID2 SAME.GROUP
<int> <int> <char>
1: 1 2 YES
2: 2 3 NO
3: 3 4 YES
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.