R 比较数据帧中的多个值

Nat*_*Nat 1 if-statement r match dataframe

我有一个数据框 (X),看起来像

ID1  ID2
1     5
1     2
1     3
2     3
3     4
Run Code Online (Sandbox Code Playgroud)

另一个(Y)看起来像

ID  GROUP
1    5
2    5     
3    6
4    6
Run Code Online (Sandbox Code Playgroud)

我正在尝试比较和计算数据帧 X 中同一行中的 ID,它们是否位于数据帧 Y 中列出的同一组中?

例如:

ID1  ID2  SAME.GROUP
1     2    YES
2     3    NO
3     4    YES
Run Code Online (Sandbox Code Playgroud)

我在匹配一列之前已经完成了此操作,但不知道如何同时完成这两件事。提前致谢

Maë*_*aël 5

您可以使用match

transform(X, SAME.GROUP = Y$GROUP[match(X$ID1, Y$ID)] == Y$GROUP[match(X$ID2, Y$ID)])
Run Code Online (Sandbox Code Playgroud)
  ID1 ID2 SAME.GROUP
1   1   2       TRUE
2   2   3      FALSE
3   3   4       TRUE
Run Code Online (Sandbox Code Playgroud)

数据

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
")
Run Code Online (Sandbox Code Playgroud)