只是一个简单的问题 我在 R 中努力将数字列表转换为具有固定行数的矩阵 并且数字一次放置在三元组(3 行块)中 元素是数字,但我只会显示我想要放置它们的位置。
例如3排
1 2 3 10 11 12
4 5 6 13 14 15
7 8 9 16 17 18
4行
1 2 3 13 14 15
4 5 6 16 17 18
7 8 9 19 20 21
10 11 12 22 23 24
3行:
1 2 3 10 11 12 19 20 21 28 29 30
4 5 6 13 14 15 22 23 24 31 32 33
7 8 9 16 17 18 25 26 27 34 35 36
谢谢!
尝试了很多不同的方式和套餐但没有运气
你可以试试这个。
> fn <- \(x, n) {
+ sq <- seq_len(ceiling(length(x)/n^2)) - 1L
+ lapply(sq, \(i)
+ matrix(x[seq_len(n*3) + i*n*3], nrow=n, ncol=3, byrow=TRUE)
+ ) |>
+ do.call(w='cbind')
+ }
> fn(1:18, 3)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 10 11 12
[2,] 4 5 6 13 14 15
[3,] 7 8 9 16 17 18
> fn(1:24, 4)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 13 14 15
[2,] 4 5 6 16 17 18
[3,] 7 8 9 19 20 21
[4,] 10 11 12 22 23 24
> fn(1:36, 3)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 1 2 3 10 11 12 19 20 21 28 29 30
[2,] 4 5 6 13 14 15 22 23 24 31 32 33
[3,] 7 8 9 16 17 18 25 26 27 34 35 36