У меня две матрицы одинакового размера, 2 миллиона строк и 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
.