我有一个像这样的数据框:
> df1
a b c
1 0.5 0.3 0
2 0.2 0 0
3 0 0.6 0
4 0 0 0.4
我想置换每列中的行 1000 次,但是我想为每一列独立地执行此操作(如拉斯维加斯的老虎机)。
我注意到 R 中的示例函数并没有真正允许这样做,例如采样行给你。
> df2 <- df1[sample(nrow(df1)),]
> df2
a b c
3 0 0.6 0
4 0 0 0.4
2 0.2 0 0
1 0.5 0.3 0
但请注意整行是如何被视为一个块的(即它们被保存在它们的列旁边,例如 0.5 总是在 0.3 旁边)
我不认为按列和按行都这样做是正确的答案,因为它会水平和垂直排列(即不像拉斯维加斯的老虎机)。