将一列矩阵转换为n x c矩阵

时间:2015-04-24 14:52:40

标签: r matrix

我有一个(nxc + n + c)乘1矩阵。我想取消选择最后的n + c行并将其余行转换为nxc矩阵。下面是我尝试过的,但它返回一个矩阵,其中每一个元素在一行中相同。我不知道为什么会这样。有人可以帮帮我吗?

tmp=x[1:n*c,]
Membership <- matrix(tmp, nrow=n, ncol=c)

1 个答案:

答案 0 :(得分:2)

你有一个长度为x的向量n*c + n + c,当你执行提取时,你在代码中加了一个逗号。 你应该做tmp=x[1:(n*c)]。 注意括号的重要性,因为如果你做tmp=x[1:n*c],它将从1n的范围,乘以c - 给出一个新的范围,然后提取基于这个新的范围。

例如,您要避免:

(1:100)[1:5*5]
[1]  5 10 15 20 25

你也可以不用把索引弄乱你的头:

matrix(head(x, n*c), ncol=c)