我正在寻求随机化订书片的顺序,但要保留结构。为了说明,我可以使用数据框架来完成此操作:
df1 <- data.frame("X1" = LETTERS[1:5], "X2" = letters[1:5])
df1
df1R <- df1[sample(df1[,1]),]
df1R
> df1
X1 X2
1 A a
2 B b
3 C c
4 D d
5 E e
>
> df1R <- df1[sample(df1[,1]),]
> df1R
X1 X2
2 B b
5 E e
1 A a
3 C c
4 D d
您可以在这里看到整体顺序是随机的,但是行保持在一起,这是我保留结构的意思 - a与a,b保持b ...
保持我想为列表实现此信息:
m1 <- list(LETTERS[1:5], letters[1:5])
,但我陷入了如何看,我看上去很圆,但找不到解决方案。有建议吗?
结果看起来像:
> m1R
[[1]]
[1] "B" "C" "E" "A" "D"
[[2]]
[1] "b" "c" "e" "a" "d"
您可以这样做以重新排序所有元素:
neworder <- sample.int(5)
lapply(m1, function(x) x[neworder])