tfp*_*tfp 8 warnings for-loop r
我知道已经有一些线程,但是经过那些我无法弄清楚问题可能是什么 - 请原谅我...
我正在尝试运行代码
for (i in 1:a){
matrix$new_column[i]<-which(matrix[i,1:b-1]==matrix$col_b[i])
}
Run Code Online (Sandbox Code Playgroud)
什么我试图是:对于矩阵的一个行和b列,在各列line's 2到B-1中,找到包括相同的值作为一个列中的一个b(总有这样的值)并将相应的列号写入*new_column*
我的代码不断抛出错误
矩阵中的警告$ new_column [i] < - which(matrix [i,:要替换的项目数不是替换长度的倍数]
但是,结果是完全正确的.我试过了
如上所述,结果是正确的,但是如果我做的一切正确的话,我觉得我不应该收到警告信息,所以我真的很感激任何关于如何解决这个问题的建议.
最后,不要问我为什么选择1:b-1,当我想从2变为b-1时,我只是看到当我使用2:b-1时,它将在第3列开始实际开始.
which()如果有多个匹配,则可以返回向量.例如:
which((1:12)%%2 == 0) # which are even?
Run Code Online (Sandbox Code Playgroud)
是matrix$col_b[i]独一无二的?结果可能看起来仍然正确.注意在这种情况下会发生什么:
x <- 1:2
x[1] <- 3:4
x
Run Code Online (Sandbox Code Playgroud)
此外,1:b-1并没有给你数字1,b - 1但从数字1到b,所有减去1:
b <- 10
1:b-1
Run Code Online (Sandbox Code Playgroud)
你需要括号来强制减法:1:(b - 1).