ベクトルをランダム化する方法


81

単純な1行のコマンドで、ベクトル内の番号の順序をランダムに再編成したいですか?

私の特定のベクトルVには、1から10までの値ごとに150のエントリがあります。

V <- rep(1:10, each=150)

9
ここでの答えはあなたを正しく指し示していますsample。サンプルをそのまま使用することに伴ういくつかの危険性については、ここで警告を確認することをお勧めします。
デイソン2012

@Dason:tl; drは、ベクトルの長さが1より大きいことが保証されている限り、機能します。
smci 2018

1
@smci tl; Drは、慣れると危険で、最終的に長さが1になると噛み付きます。
デイソン2018

@Dason私はそれを読みましたが、のbase::sample使用を強制するようにまだ誰も変更されていませんseq_along。また、とにかくどこにsample/sample.int電話 base::seq()するのかわかりませんか?
smci 2018

回答:


124

はい。

sample(V)

差出人?sample

'sample'の場合、 'size'のデフォルトは最初の引数から推測される項目の数であるため、 'sample(x)'は 'x'(または '1:x')の要素のランダム順列を生成します。


[1,1、2、2、2、2、3、3、4、5、5、5]をシャッフルして、[5、5、3、3、3、3、3]のようにするにはどうすればよいですか。 1、1、2、4、4、4]?各要素がランダムに別の要素に変わる可能性がありますが、各要素の数は一定に保たれていますか?
rotail 2016年

2
@Rotail:これはすでにあなたが望むことをします。デフォルトのsize引数は。です。(これを行うコードを表示するには、入力してください。)samplesize <- length(x)sample
smci 2018

うん!ありがとうございました!
rotail 2018

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.