2016-03-10 21 views
0

我想随机洗牌数据框中的所有列,第一列除外。第一列应该保留在原来的位置。随机洗牌列除第一列

到目前为止,我只想到如何洗牌所有列,但这包括第一列。

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 

有什么建议吗?

回答

2

只排除第一种:

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

完美,谢谢! – Joseph