私が持っているデータは次のようなものです:
RES1 <- c("A","B","A","A","B")
RES2 <- c("B","A","A","B","A")
VAL1 <-c(3,5,3,6,8)
VAL2 <- c(5,3,7,2,7)
dff <- data.frame(RES1,VAL1,RES2,VAL2)
dff
RES1 VAL1 RES2 VAL2
1 A 3 B 5
2 B 5 A 3
3 A 3 A 7
4 A 6 B 2
5 B 8 A 7
同じ res1-res2 ペアが既にある行を削除したいと思います。例: A 3 は B 5 と相互作用します。それが私が欲しい情報です。どのペアが最初かは気にしません。B 5 with A 3 または A 3 with B 5.取得したいのは、次のデータフレームです。
output
RES1 VAL1 RES2 VAL2
1 A 3 B 5
2 A 3 A 7
3 A 6 B 2
4 B 8 A 7
次に、次のような別のデータフレームに対して同じことをしたい:
RES3 <- c("B","B","B","A","B")
RES4 <- c("A","A","A","A","B")
VAL4 <- c(3,7,5,3,8)
VAL3 <- c(5,8,3,7,3)
df2 <- data.frame(RES3,VAL3,RES4,VAL4)
df2
RES3 VAL3 RES4 VAL4
1 B 5 A 3
2 B 8 A 7
3 B 3 A 5
4 A 7 A 3
5 B 3 B 8
最後に、相互のペアを維持したいだけです (私の定義では、両方のペアは同じです。一方を維持することが不可欠です。「A 5」-「B 3」は「B 3」-「A 5」と同じです。つまり、順序は関係ありません。
私が望む最終出力には、一意であり、両方のデータフレームに存在する次のペアが必要です。
mutualpairs
RESA VALA RESB VALB
A 3 B 5
A 3 A 7
B 8 A 7