Ответы здесь правильно указывают на вашу сторону sample. Возможно, вы захотите ознакомиться с предупреждениями здесь о некоторых опасностях, связанных с простым использованием образца как есть.
Дейсон 07
@Dason: tl; dr - до тех пор, пока длина вектора гарантированно будет> 1, это работает.
smci
1
@smci. tl; Dr заключается в том, что это опасно, потому что человек привыкает к нему, а затем, когда он наконец достигает длины 1, он вас кусает.
Дейсон
@Dason Я читал это, но никто еще не модифицировал его base::sampleдля принудительного использования seq_along. Также я все равно не вижу, куда sample/sample.intзвонить base::seq()?
smci
Ответы:
124
Да.
sample(V)
Откуда ?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
24
sampleФункция использования
V<-rep(1:10, each=150)
set.seed(001) # just to make it reproducible
sample(V)
sample
. Возможно, вы захотите ознакомиться с предупреждениями здесь о некоторых опасностях, связанных с простым использованием образца как есть.base::sample
для принудительного использованияseq_along
. Также я все равно не вижу, кудаsample/sample.int
звонитьbase::seq()
?Ответы:
Да.
Откуда
?sample
:источник
size
аргумент поsample
умолчанию вsize <- length(x)
. (Введите,sample
чтобы увидеть код, который делает это.)sample
Функция использованияV<-rep(1:10, each=150) set.seed(001) # just to make it reproducible sample(V)
источник
replace=FALSE
значение по умолчанию.