私は次のようなデータを持っています
a b c
1 5 4
3 6 1
2 5 3
すべての列を行に変換するように変換し、次のような出力が必要です
r1 r2 r3 r4
a 1 3 2
b 5 6 5
c 4 1 3
前もって感謝します
データセットを転置し、最初の列を行名として_data.frame
_に変換できます。
_m1 <- t(df1)
d2 <- data.frame(r1= row.names(m1), m1, row.names=NULL)
_
編集:_row.names
_呼び出しに_data.frame
_引数を含めました(@Richard Scrivenのコメントから)
または、@ Ananda Mahtoが述べたように、names(df1)
を使用して「r1」列を作成し、グローバル環境でのオブジェクトの作成をスキップすることができます。
_d2 <- data.frame(r1=names(df1), t(df1))
_
または別のオプションは_melt/dcast
_です。 _data.frame
_をmatrix
に変換し、melt
を「long」形式に変換してからdcast
を「wide」形式に変換します。
_library(reshape2)
dcast(melt(as.matrix(df1)), Var2~paste0('r', Var1), value.var='value')
_