随机洗牌除第一列以外的列

时间:2016-03-10 21:26:08

标签: r random shuffle

我想随机地移动数据框中的所有列,第1列除外。第一列应保留在原位。

到目前为止,我只知道如何对所有列进行随机播放,但这包括第一列。

df <- data.frame(matrix(rnorm(20),nrow=5))
df <- df[,sample(ncol(df))]

这里,X1应保留在原位,而X2,X3和X4应随机改组。

> df
      X1         X2         X3         X4
1  0.2582514 -0.3615941  0.5114984 -0.6918975
2  1.8234944 -0.5024039  0.9252904 -1.0034840
3  0.1513888  0.1269615 -1.2987913 -0.7017240
4 -0.8194843  1.1256620  2.0126086  1.7089314
5 -0.6733888 -1.1731604 -0.1649225 -1.7343608

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

只需排除第一个:

df[, c(1, sample(2:ncol(df)))]