У меня есть вектор чисел 1:17. Я случайно переназначение подмножества векторов в нем (в приведенном ниже примере, где 1:10 и 11:17 должны быть случайным заказана):Изменить порядок последовательных целых чисел в блоках с помощью R
x = c(1:10)
x_s = sample(x, length(x), replace = FALSE)
[1] 7 9 3 4 10 5 1 6 8 2
y=c(11:17)
> y_s = sample(y, length(y), replace = FALSE)
[1] 17 16 13 12 14 15 11
final=c(x_s,y_s)
[1] 7 9 3 4 10 5 1 6 8 2 17 16 13 12 14 15 11
В то время как я могу получить свой окончательный переупорядоченный вектор, есть более элегантный подход к этому коду? Я спрашиваю, потому что это всего лишь пример, и моя реальная проблема - это гораздо больший вектор, в котором есть много подвекторов, которые нуждаются в случайном переупорядочении. Код будет слишком много строк!
спасибо.
Как определяются подмножества? – A5C1D2H2I1M1N2O1R2T1
Для этого точного примера вы можете просто сделать unlist (lapply (list (1:10, 11:17), sample)) '. – A5C1D2H2I1M1N2O1R2T1
Просто присваивание целых чисел 'x <- c (1:10)', вам не нужно использовать 'c()'. 'x <- 1: 10' - то же самое. –