一意の行名と一意の列名を持つデータフレームがあります。行を列に、列を行に変換したい。
たとえば、次のコード:
starting_df <- data.frame(row.names= c(LETTERS[1:4]),
a = c(1:4),
b = seq(0.02,0.08,by=0.02),
c = c("Aaaa","Bbbb","Cccc","Dddd")
)
結果は次のとおりです。
> starting_df
a b c
A 1 0.02 Aaaa
B 2 0.04 Bbbb
C 3 0.06 Cccc
D 4 0.08 Dddd
以前は行だったものが現在は列であり、逆の場合を除き、まったく同じデータを含む別のデータフレームに変換したい:
> final_df
A B C D
a 1 2 3 4
b 0.02 0.04 0.06 0.08
c Aaaa Bbbb Cccc Dddd
単純にベースtranspose function t
を使用し、as.data.frame
でラップします。
final_df <- as.data.frame(t(starting_df))
final_df
A B C D
a 1 2 3 4
b 0.02 0.04 0.06 0.08
c Aaaa Bbbb Cccc Dddd
上記を更新しました。 docendo discimusが指摘したように、t
は行列を返します。マークがas.data.frame
でラッピングするよう提案したように、マトリックスではなくデータフレームを取得します。ありがとう!