これが私のデータフレームです:
name <- c("P1", "P2", "IndA", "IndB", "IndC", "IndD", "IndE", "IndF", "IndG")
A <- c(1, 3, 1, 2, 2, 5, 5, 1, 4)
B <- c(2, 4, 3, 4, 2, 2, 6, 2, 2)
mydf <- data.frame (name, A, B)
次の説明は、私が生成したい組み合わせを示し、可能な組み合わせではないことを識別します。
各親(P1とP2)には2つあり、1つを子供(個人)に寄付できます。
親は同じもの(たとえば、次の例では1)を持つことができ、毎回1つ貢献できます。
したがって、これは組み合わせゲームになります。次の組み合わせの例です。
逆数は同じ(正しい):13は31と同じ
質問は次のとおりです。可能な組み合わせを作成し、組み合わせのメンバーになれないものを見つけます。
name <- c("P1", "P2", "IndA", "IndB", "IndC", "IndD", "IndE", "IndF", "IndG")
A <- c(1, 3, 1, 2, 2, 5, 5, 1, 4)
B <- c(2, 4, 3, 4, 2, 2, 6, 2, 2)
mydf <- data.frame (name, A, B)
name A B
1 P1 1 2
2 P2 3 4
3 IndA 1 3
4 IndB 2 4
5 IndC 2 2
6 IndD 5 2
7 IndE 5 6
8 IndF 1 2
9 IndG 4 2
期待される出力:
name A B correct
1 P1 1 2 NA
2 P2 3 4 NA
3 IndA 1 3 TRUE
4 IndB 2 4 TRUE
5 IndC 2 2 FALSE
6 IndD 5 2 FALSE
7 IndE 5 6 FALSE
8 IndF 1 2 FALSE
9 IndG 4 2 TRUE
編集:ダブルチェック用の2番目のデータセット:
name <- c("P1", "P2", "IndH", "IndI", "IndJ", "IndK")
A <- c(1, 3, 3, 1, 4, 3)
B <- c(1, 4, 3, 1, 1, 5)
mydf2 <- data.frame (name, A, B)
mydf2
name A B Correct
1 P1 1 1 NA
2 P2 3 4 NA
3 IndH 3 3 FALSE
4 IndI 1 1 FALSE
5 IndJ 4 1 TRUE
6 IndK 3 5 FALSE