2017-04-17 22 views
2

このリンクは私の質問の一部に答えます:How to randomize (or permute) a dataframe rowwise and columnwise?R:列ごとにデータフレームをシャッフル

> df1 
    a b c 
1 1 1 0 
2 1 0 0 
3 0 1 0 
4 0 0 0 

列方向シャッフルは、私が欲しいの列

> df3 <- df1[,sample(ncol(df1))] 
> df3 
    c a b 
1 0 1 1 
2 0 1 0 
3 0 0 1 
4 0 0 0 

を並べ替えている出力df3、下の私を与える列名も同様に変更すべきであるということです。行単位と列単位の合計は同じままです。列名が再割り当てされるだけです。何かがdf4のようなものです。どうすればこれを達成できますか?

> df4 
    c a b 
1 1 1 0 
2 1 0 0 
3 0 1 0 
4 0 0 0 

PS:どのように私は、列によってその形状行でdfを保つのですか?質問を投稿すると、書式が崩れますか?

答えて

3

カラム名をサンプリングするだけでよいでしょう。次のようなもの:

names(df) <- names(df)[sample(ncol(df))] 
+0

ありがとうございます!それは素晴らしい、そして迅速な助けでした。 @P Lapointe、dfフォーマットの正しい方向を教えてください。 – Rav

+0

@Rav他のユーザーにタグを付けても、あなたの質問はどういう意味ですか? – 989

+1

@P Lapointeはdfを正しいフォーマットにするために私の質問を編集しました。私のPSのコメントを見てください。私は知りたかったので、もう一度繰り返さない。 – Rav

関連する問題