sym*_*246 1 loops for-loop r matrix sequential
我真的不知道怎么说这个问题所以很容易理解,所以请耐心等待.
我有一个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 ...
Run Code Online (Sandbox Code Playgroud)
等等...
我需要根据向量中的项目编号重命名零列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 ...
Run Code Online (Sandbox Code Playgroud)
我的问题是能够指定第1列中的哪些行进行更改.我可以很容易地创建一个标记1的循环,data[1:h[1],1) <- 1但是当涉及剩下的数字时,我找不到一种方法来对R"选择接下来的X行,在我们已经改变之后",然后选择接下来的X行并改为__".
对不起,如果我没有解释我的问题太好了!
我们可以使用'h'的元素rep来复制生成的序列(seq_along(h)).
m1[,1] <- rep(seq_along(h), h)
Run Code Online (Sandbox Code Playgroud)
根据 ?seq
'seq_along'和'seq_len'是两种常见情况的非常快速的原语....'seq_along'和'seq_len'返回一个整数向量