在 R 中给出以下数组:
x <- 1:24
dim(x) <- c(2,4,3)
这给出了:
> x
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
, , 2
[,1] [,2] [,3] [,4]
[1,] 9 11 13 15
[2,] 10 12 14 16
, , 3
[,1] [,2] [,3] [,4]
[1,] 17 19 21 23
[2,] 18 20 22 24
如何应用sample()函数来排列矩阵中的列?例如,在第 1 列中,值 1、2、9、10 和 17、18 将在 3 个矩阵中排列,同时保留在第 1 列中。
一个样本可能是:
> x
, , 1
[,1] [,2] [,3] [,4]
[1,] 10 11 5 23
[2,] 2 19 22 8
, , 2
[,1] [,2] [,3] [,4]
[1,] 1 3 6 24
[2,] 17 12 14 16
, , 3
[,1] [,2] [,3] [,4]
[1,] 9 4 21 7
[2,] 18 20 13 15
谢谢
我用 for 循环找到了这个解决方案,但对于大型数组可能有更好更高效的解决方案(?)
for(i in 1:ncol(x)){x[,i,] <- sample(x[,i,])}