我真的不知道怎么说这个问题所以这很容易理解,所以请耐心等待。
我有一个2列矩阵,需要根据另一个矩阵修改第1列中的值,比如h
。
例如,h
可能如下所示:h <- c(11,10,10,8,12)
我的数据矩阵如下:
[1,] 0 0
[2,] 0 0
[3,] 0 26
[4,] 0 44
[5,] 0 0
[6,] 0 65
[7,] 0 0
[8,] 0 0
[9,] 0 0
[10,] 0 28
[11,] 0 25
[12,] 0 0
[13,] 0 81
[14,] 0 0
[15,] 0 0 ...
等...
我需要根据向量h
中的项目编号重命名零列。因此,我需要将行1:11标记为1,12:21标记为2,22:31标记为3等,如下所示:
[1,] 1 0
[2,] 1 0
[3,] 1 26
[4,] 1 44
[5,] 1 0
[6,] 1 65
[7,] 1 0
[8,] 1 0
[9,] 1 0
[10,] 1 28
[11,] 1 25
[12,] 2 0
[13,] 2 81
[14,] 2 0
[15,] 2 0 ...
我的问题是能够指定第1列中的哪些行要更改。我可以很容易地创建一个标记1 {,data[1:h[1],1) <- 1
的循环,但是当涉及剩下的数字时,我无法找到一种方式来对R&#34;选择下一个X行,之后我们已经更改过的&#34;,&#34;然后选择下一个X行并更改为__&#34;。
对不起,如果我没有解释我的问题太好了!
答案 0 :(得分:6)
我们可以使用rep
来复制由'h'元素生成的序列(seq_along(h)
)。
m1[,1] <- rep(seq_along(h), h)
根据?seq
'seq_along'和'seq_len'非常好 两个常见情况的快速原语....'seq_along'和'seq_len'返回整数向量