此链接回答了我的一部分问题:How to randomize (or permute) a dataframe rowwise and columnwise?。
> df1
a b c
1 1 1 0
2 1 0 0
3 0 1 0
4 0 0 0
逐列shuffle给我低于输出df3
,它正在重新排序列
> df3 <- df1[,sample(ncol(df1))]
> df3
c a b
1 0 1 1
2 0 1 0
3 0 0 1
4 0 0 0
我想要的是列名也应该改变。行方式和列方式总计保持不变,只需重新分配列名称。像df4
这样的东西。我怎样才能做到这一点?
> df4
c a b
1 1 1 0
2 1 0 0
3 0 1 0
4 0 0 0
PS:如何逐列保持df
形状?当我发布问题格式崩溃?
答案 0 :(得分:3)
您可能只想对列名进行采样。类似的东西:
names(df) <- names(df)[sample(ncol(df))]