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