単一変数の番号付きバージョンを生成することにより、長いデータフレームをワイドフォーマットに変換した後にreshape
を元に戻したいと思います。私が直面している課題は、複数のキー変数と複数の変数が再結合する必要がある場合にこれを実行することです。私はtidyr
からgather
を使用してみました。長いデータのこの例を見てみましょう:以下data.frame与え作成された任意の数の列を使用した変形を取り消します
toy = data.frame(
first_key = rep(c("A", "B", "C"), each = 6),
second_key = rep(rep(c(1:2), each = 3), 3),
colors = c("red", "yellow", "green", "blue", "purple", "beige"),
days = c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"),
index = c(1:3)
)
:変数の番号のバージョンとワイドフォーマットに再成形
first_key second_key colors days index
A 1 red Monday 1
A 1 yellow Tuesday 2
A 1 green Wednesday 3
A 2 blue Thursday 1
A 2 purple Friday 2
A 2 beige Saturday 3
B 1 red Monday 1
B 1 yellow Tuesday 2
B 1 green Wednesday 3
B 2 blue Thursday 1
B 2 purple Friday 2
B 2 beige Saturday 3
C 1 red Monday 1
C 1 yellow Tuesday 2
C 1 green Wednesday 3
C 2 blue Thursday 1
C 2 purple Friday 2
C 2 beige Saturday 3
は次のようになります。
toy_wide = reshape(toy, idvar = c("first_key", "second_key"),
timevar = "index", direction = "wide", sep = "_")
そして、この広いフォーマットを提供します:
first_key second_key colors_1 days_1 colors_2 days_2 colors_3 days_3
A 1 red Monday yellow Tuesday green Wednesday
A 2 blue Thursday purple Friday beige Saturday
B 1 red Monday yellow Tuesday green Wednesday
B 2 blue Thursday purple Friday beige Saturday
C 1 red Monday yellow Tuesday green Wednesday
C 2 blue Thursday purple Friday beige Saturday
しかし元の形式に戻すにはどうしたらいいですか?私は以下を試しましたが、エラーが発生します。
tidyr::gather(toy_wide, key = c("first_key", "second_key"), value = c("days", "colors"),
colors_1:days_3, factor_key = TRUE)
Error: Invalid column specification
偉大な一般化可能性! – Nancy