还有一个很短的问题 我在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

谢谢!

try 了许多不同的方法和套餐,但没有成功

推荐答案

使用gl创建一个由1、1、1、2、2等组成的载体,最多为nr、nr、nr(其中nr是所需的行数). split将重复它到输入的长度,因此将输入按该长度拆分,并将结果列表组件rbind合并在一起.不使用任何包装.

f <- function(x, nr) do.call("rbind", split(x, gl(nr, 3)))

# tests

f(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

f(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

f(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

这种变体也有效:

f2 <- function(x, nr) t(simplify2array(split(x, gl(nr, 3))))

R相关问答推荐

在ggplot Likert条中添加水平线

从gtsummary包中使用tBL_strata()和tBL_summary()时删除变量标签

二维样条,严格以一个参数递增

错误:非常长的R行中出现意外符号

是否可以创建一个ggplot与整洁判断的交互作用

条形图和在Ploly中悬停的问题

以更少间隔的较小表中的聚合离散频率表

在ggplot2的框图中绘制所有级别的系数

Select 季度月值

R中1到n_1,2到n_2,…,n到n_n的所有组合都是列表中的向量?

如何从容器函数中提取conf并添加到ggplot2中?

TreeNode打印 twig 并为其上色

为左表中的所有行使用值Fill滚动左连接

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

在R中,如何从一系列具有索引名的变量快速创建数据帧?

仅当后续值与特定值匹配时,才在列中回填Nas

如果条件匹配,则使用Mariate粘贴列名

如何在使用因子时获得Sankey图的Scale_Fill_Viridis的全范围

在使用SliderInput In Shiny(R)设置输入数据的子集时,保留一些情节痕迹

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用