我有一个(nxc + n + c)乘1矩阵。我想取消选择最后的n + c行并将其余行转换为nxc矩阵。下面是我尝试过的,但它返回一个矩阵,其中每一个元素在一行中相同。我不知道为什么会这样。有人可以帮帮我吗?
tmp=x[1:n*c,]
Membership <- matrix(tmp, nrow=n, ncol=c)
答案 0 :(得分:2)
你有一个长度为x
的向量n*c + n + c
,当你执行提取时,你在代码中加了一个逗号。
你应该做tmp=x[1:(n*c)]
。
注意括号的重要性,因为如果你做tmp=x[1:n*c]
,它将从1
到n
的范围,乘以c
- 给出一个新的范围,然后提取基于这个新的范围。
例如,您要避免:
(1:100)[1:5*5]
[1] 5 10 15 20 25
你也可以不用把索引弄乱你的头:
matrix(head(x, n*c), ncol=c)