私が持っているもの:
次の列を持つ「マスター」データフレームがあります。
userid, condition
4つの実験条件があるため、回答情報を保持する4つのデータフレームがあり、次の列があります。
userid, condition, answer1, answer2
今、私はこれらに参加したいので、ユーザーID、条件、およびこれらの条件に対するそれらの回答のすべての組み合わせがマージされます。各条件には、行ごとの適切な列にのみ正解が含まれている必要があります。
短い、自己完結型の例:
master = data.frame(userid=c("foo","foo","foo","foo","bar","bar","bar","bar"), condition=c("A","B","C","D","A","B","C","D"))
cond_a = data.frame(userid=c("foo","bar"), condition="A", answer1=c("1","1"), answer2=c("2","2"))
cond_b = data.frame(userid=c("foo","bar"), condition="B", answer1=c("3","3"), answer2=c("4","4"))
cond_c = data.frame(userid=c("foo","bar"), condition="C", answer1=c("5","5"), answer2=c("6","6"))
cond_d = data.frame(userid=c("foo","bar"), condition="D", answer1=c("7","7"), answer2=c("8","8"))
すべての条件をマスターにマージして、マスターテーブルを次のようにするにはどうすればよいですか?
userid condition answer1 answer2
1 bar A 1 2
2 bar B 3 4
3 bar C 5 6
4 bar D 7 8
5 foo A 1 2
6 foo B 3 4
7 foo C 5 6
8 foo D 7 8
私は次のことを試しました:
temp = merge(master, cond_a, all.x=TRUE)
それは私に与えます:
userid condition answer1 answer2
1 bar A 1 2
2 bar B <NA> <NA>
3 bar C <NA> <NA>
4 bar D <NA> <NA>
5 foo A 1 2
6 foo B <NA> <NA>
7 foo C <NA> <NA>
8 foo D <NA> <NA>
しかし、私がこれを行うとすぐに…</ p>
merge(temp, cond_b, all.x=TRUE)
条件の値はありませんB
。どうして?
userid condition answer1 answer2
1 bar A 1 2
2 bar B <NA> <NA>
3 bar C <NA> <NA>
4 bar D <NA> <NA>
5 foo A 1 2
6 foo B <NA> <NA>
7 foo C <NA> <NA>
8 foo D <NA> <NA>