長い日付のデータフレームには、同じ日付と人数の複数のエントリがあります。行に重複した識別子でスプレッドを使用する
jj <- data.frame(month=rep(1:3,4),
student=rep(c("Amy", "Bob"), each=6),
A=c(9, 7, 6, 8, 6, 9, 3, 2, 1, 5, 6, 5),
B=c(6, 7, 8, 5, 6, 7, 5, 4, 6, 3, 1, 5))
私は広い形式に変換し、このようにそれを作りたい:
month Amy.A Bob.A Amy.B Bob.B
1
2
3
1
2
3
1
2
3
1
2
3
私の質問はthisと非常によく似ています。私は答えに与えられたコードを使用しています
kk <- jj %>%
gather(variable, value, -(month:student)) %>%
unite(temp, student, variable) %>%
spread(temp, value)
が、それは誤り以下与える:
Error: Duplicate identifiers for rows (1, 4), (2, 5), (3, 6), (13, 16), (14, 17), (15, 18), (7, 10), (8, 11), (9, 12), (19, 22), (20, 23), (21, 24)
感謝を事前に。 注:複数のエントリを削除したくありません。
出力が意味をなさない。 Bob.Bはどのように5 6 7です。 1月の '5 3'には2つのBob B値がありますか?そして2ヶ月目は「4と2」です。最後に、3月6日に「6 5」。これらを1つの値にまとめています。 –