R将一行切成等长的多行

R将一行切成等长的多行,r,R,我想剪一排 x=[123456789910112] 分为多个等长的行,以便 y(第1行)=[1 2 3 4 y(第2行)=5 6 7 8 y(第3行)=9 10 11 12] 我知道我可以使用rbind和cbind的组合来实现这一点,但我尝试将其应用到的数据集比示例要大得多,因此我正在寻找一种更快速、更自动地实现这一点的方法。我试着剪了又剪,但那些也不起作用 jelle使用矩阵: > y <- 1:12 > y [1] 1 2 3 4 5 6 7 8 9 1

我想剪一排

x=[123456789910112]

分为多个等长的行,以便

y(第1行)=[1 2 3 4

y(第2行)=5 6 7 8

y(第3行)=9 10 11 12]

我知道我可以使用rbind和cbind的组合来实现这一点,但我尝试将其应用到的数据集比示例要大得多,因此我正在寻找一种更快速、更自动地实现这一点的方法。我试着剪了又剪,但那些也不起作用


jelle

使用
矩阵

> y <- 1:12
> y
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
> matrix(y,3,4,byrow=1)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
>y
[1]  1  2  3  4  5  6  7  8  9 10 11 12
>矩阵(y,3,4,byrow=1)
[,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

编辑:我将
byrow=TRUE
参数包含在
matrix
(由Chase在注释中指出)中,该参数沿行而不是列填充矩阵。

使用
matrix

> y <- 1:12
> y
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
> matrix(y,3,4,byrow=1)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
>y
[1]  1  2  3  4  5  6  7  8  9 10 11 12
>矩阵(y,3,4,byrow=1)
[,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
编辑:我将
byrow=TRUE
参数包含在
matrix
(Chase在评论中指出)中,该参数沿行而不是列填充矩阵。

函数
matrix()
是您的朋友:

> matrix(1:12, nrow = 3, byrow = TRUE)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
请注意可选参数,
byrow
。默认值为FALSE,将按列填充矩阵,在本例中,将其设置为true将按您描述的顺序排列数据。需要注意的是,如果按列填充,R不会抛出错误,但您的数据格式不正确

函数
matrix()
是您的朋友:

> matrix(1:12, nrow = 3, byrow = TRUE)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

请注意可选参数,
byrow
。默认值为FALSE,将按列填充矩阵,在本例中,将其设置为true将按您描述的顺序排列数据。需要注意的是,如果按列填充,R不会抛出错误,但您的数据格式不正确

仅供参考,为了匹配OP的输出,您需要按行填充。仅供参考,为了匹配OP的输出,您需要按行填充。我感觉这是一个伪代码,但您在问题中定义x的方式不是有效的R语法。使用
x我感觉这是一个伪代码,但是您在问题中定义x的方式不是有效的R语法。使用
x