벡터를 무작위 화하는 방법


81

간단한 한 줄 명령으로 벡터의 숫자 순서를 무작위로 재구성하고 싶습니다.

내 특정 벡터 V에는 1에서 10까지의 각 값에 대해 150 개의 항목이 있습니다.

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

9
여기에 대한 답변은 sample. 샘플을있는 그대로 사용하는 것과 함께 발생하는 몇 가지 위험에 대한 경고를 여기 에서 확인할 수 있습니다 .
Dason

@Dason : tl; dr은 벡터 길이가> 1로 보장되는 한 작동합니다.
smci

1
@smci tl; Dr은 하나가 익숙해 져서 마침내 길이가 1이되었을 때 당신을 물기 때문에 위험하다는 것입니다.
Dason

@Dason 나는 것을 읽을 수 있었다, 그러나 아무도는 아직 수정 것 base::sample의 힘의 사용 seq_along. 어차피 어디로 sample/sample.int전화를 걸지 모르겠어 base::seq()?
smci

답변:


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, 1, 1, 2, 4, 4, 4]? 각 요소가 무작위로 다른 요소로 변경 될 수 있지만 각 요소의 수를 일정하게 유지하는 것입니까?
Rotail

2
@Rotail : 이것은 이미 원하는 것을 수행합니다. 의 size인수 sample기본값은 size <- length(x). ( sample이 작업을 수행하는 코드를 보려면 입력 하십시오.)
smci

예! 감사합니다!
Rotail

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.