web-dev-qa-db-ja.com

Rでdata.frameを転置し、列の1つを新しい転置テーブルのヘッダーに設定する最良の方法は何ですか?

Rでdata.frameを転置し、列の1つを新しい転置テーブルのヘッダーに設定する最良の方法は何ですか?これを行う方法を以下にコード化しました。私はまだRに慣れていないので、コードを改善するための提案と、よりRに似た代替案を求めています。私の解決策も残念ながら少しハードコードされています(つまり、新しい列見出しは特定の場所にあります)。

# Assume a data.frame called fooData
# Assume the column is the first column before transposing

# Transpose table
fooData.T <- t(fooData)

# Set the column headings
colnames(fooData.T) <- test[1,]

# Get rid of the column heading row
fooData.T <- fooData.T[2:nrow(fooData.T), ]

#fooData.T now contains a transposed table with the first column as headings
18
themartinmcfly

まああなたは使用することで2つのステップでそれを行うことができました

# Transpose table YOU WANT
fooData.T <- t(fooData[,2:ncol(fooData)])

# Set the column headings from the first column in the original table
colnames(fooData.T) <- fooData[,1] 

結果はおそらく気づいているマトリックスですが、それは転置時のクラスの問題によるものです。転置ステップでのネーミング機能の欠如を考えると、これを行う単一の方法はないと思います。

22
nzcoops

これと同様の問題がありました。長い形式の変数の変数があり、各要素を新しい列見出しにしたかったのです。 statsライブラリの "unstack"を使用すると、1つのステップでそれを実行できます。ヘッダーとして必要な列が要因ではない場合、変形ライブラリからの「キャスト」が機能する可能性があります。

2
ccl