2
我有两个矩阵,相同的大小,200万行和2列。 matrix_a
有值,而matrix_b
为空,matrix_b
的值将由matrix_a
中的值决定。如何在循环中设置矩阵的值?
matrix_b <- matrix(, nrow(matrix_a),2)
for(rows in 1:nrow(matrix_a)){
if (matrix_a[rows,1]==0){
.....do something get values of x,
matrix_b[rows,2] = x
}
else {
do sth else get value of y,
then set matrix_b
}
}
首先,我该如何加快这个循环,因为有2百万行,处理起来非常缓慢。 其次,我注意到当我试图从matrix_a
复制一个值到matrix_b
时,它似乎不起作用。例如,虽然在我的数据
matrix_a[1,1] = 'user1'
后,我复制值
matrix_b[1,1] = matrix_a[1,1]
然而,结果打开的
matrix_b[1,1]='1'
怎么来的?为什么值'user1'未设置为matrix_b
?
我刚刚发现这可能与排序有关,因为我首先对数据进行排序以生成matrix_a
。这里的值'1'表示排序后的第一行,但我仍然不知道它是如何在matrix_b
中结束的。
在“做某事”的时候看看应该做什么会很高兴。 – daroczig
如果您在代码中放入了真正的东西,并且可能有5行数据显示您想要发生的情况,那么您会得到更好的答复。 – Henry
你应该有'} else {'作为一行。否则R不会到达'else'。 – Henry