我希望随机化子列表的顺序,但保留结构。为了说明,我可以使用数据框执行此操作:
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"
答案 0 :(得分:4)
您可以这样做以重新排序所有元素:
neworder <- sample.int(5)
lapply(m1, function(x) x[neworder])