我试图削减一行ř切成一排成相等长度的多个行
X = [1 2 3 4 5 6 7 8 9 10 11 12]
成相等长度的多个行使得
Y(ROW1)= [1个2 3 4
Y(ROW2)= 5 6 7 8
Y(ROW3)= 9 10 11 12]
我知道我可以使用rbind和cbind的组合来实现这个功能,但是我试图将它应用到的数据集比这个例子要大得多,所以我正在寻找一种更快更自动的方法。我试图削减和CUT2但那些没有工作或者
耶勒
我试图削减一行ř切成一排成相等长度的多个行
X = [1 2 3 4 5 6 7 8 9 10 11 12]
成相等长度的多个行使得
Y(ROW1)= [1个2 3 4
Y(ROW2)= 5 6 7 8
Y(ROW3)= 9 10 11 12]
我知道我可以使用rbind和cbind的组合来实现这个功能,但是我试图将它应用到的数据集比这个例子要大得多,所以我正在寻找一种更快更自动的方法。我试图削减和CUT2但那些没有工作或者
耶勒
功能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
:
> 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
编辑:我包括byrow=TRUE
参数matrix
(大通在评论中指出)其填充矩阵沿着行而不是向下的列。
我有一种感觉,这是为了伪代码,但您在问题中定义x的方式不是有效的R语法。使用'x < - 1:12'或'x < - seq(1,12,by = 1)'或者甚至是'x < - c(1,2,3,4,5,6,7,8,9 ,10,11,12)'而不是。 – Chase 2012-02-21 14:01:46