2011-11-23 5 views
2

두 행렬, 같은 크기, 2 백만 행 및 2 열 있습니다. matrix_a에는 값이 있고 matrix_b은 비어 있으며 matrix_b 값은 matrix_a의 값으로 결정됩니다.루프에서 행렬의 값을 설정하는 방법은 무엇입니까?

먼저 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.

+1

'무언가를하는 동안 무엇이 완료되어야 하는지를 보는 것이 좋을 것입니다. – daroczig

+4

코드에 실제 내용을 담고 있다면 5 열의 데이터를 입력하면 더 나은 답변을 얻을 수 있습니다. – Henry

+1

'else {'를 한 줄로 써야합니다. 그렇지 않으면 R은'else'에 도달하지 않습니다. – Henry

답변

2

"일도-다른 사람이"matrix_a[ ,1] 같은 길이의 벡터를 제공하는 함수로 캡슐화 할 수있는 두 개의 "일도"와, 당신은 벡터, sth_asth_b를 구성하고 실행할 수있는 경우

matrix_b[ , 2] <- ifelse(matrix_a[ ,1] == 0, sth_a , sth_b) 
관련 문제