001、
dat <- rbind(a = 1:5, b = letters[1:5], c = LETTERS[1:5], d = 10:6) ## 测试数据框 dat idx <- order(c(col(dat)), runif(length(dat))) ## 生成排序的索引 idx dat2 <- matrix(dat[idx], nrow = nrow(dat), byrow = F) ## 生成随机排序后的矩阵 dat2
002、直接随机提取元素实现
dat <- rbind(a = 1:5, b = letters[1:5], c = LETTERS[1:5], d = 10:6) dat dat2 <- dat for (i in 1:ncol(dat2)) { dat2[,i] <- sample(dat2[,i], nrow(dat2)) ## 利用循环结构, 随机提取每一列的元素 } dat2