2013-11-20 4 views
0

나는 Padua 대학의 Phd 학생이며 RCH v. 3.0.1에 약간의 스크립트 (첫 번째!)를 작성하여 역학을 시뮬레이션합니다. shapefile에서 nb2mat로 생성 된 이웃 행렬을 기반으로하는 883 값의 벡터 값을 변경하고 싶습니다. i와 j (두 셀)가 이웃 (행렬)이고 i 또는 j가루프 상태의 다중 if 문

for(i in 1:883) 
{ for(j in 1:883) 
    { if(MatriceDist[i,j] > 0 & ((vectorID[i] > 0 | vectorID[j] > 0)) { 
     vectorID[i] = 1 & vectorID[j] = 1 
       print(vectorID) 
} } } 

대답에서 : 벡터, 나는 다음 약간의 스크립트를 실행하면 0을 유지한다, 1 (양)에 모두 i와 j의 값을 변환하는 i와 j의 다른 값을 싶습니다 소프트웨어는 다음과 같습니다

Error: unexpected '{' in: 
" { for(j in 1:883) 
{ while(MatriceDist[i,j] > 0 & ((vectorID[i] > 0 | vectorID[j] > 0)) {" 

나는 그것이 문에 오류가 있다고 생각하지만 ... 그것을 해결하는 방법을 이해 할 수없는 경우에 모두 감사합니다! 엘리사

+1

통계 내용이 없으므로이 질문에 불만이 있다는 데 동의합니다. 개인적으로 나는 너무 stackoverflow 너무 낮은 품질이라고 생각합니다. @Phalaen : 목록에있는 오류가 코드와 일치하지 않습니다 (if와 if). a) 괄호가> 0) 뒤에 if 절에 누락되었습니다. - 또는 (vectorID [i]가 너무 많아서 절 본문이 너무 나을 정도는 아닙니다.) – Momo

+0

이 질문은 오프 토픽 인 것 같습니다. 프로그래밍에 관한 내용이기 때문에. – Momo

답변

1

하나 (if 성명에서 vectorID 전에 mucch했다

for(i in 1:883) { 
    for(j in 1:883) { 
     if(MatriceDist[i,j] > 0 & (vectorID[i] > 0 | vectorID[j] > 0)) { vectorID[i] = 1 & vectorID[j] = 1 print(vectorID) 
     } 
    } 
} 

:-) 당신의 브래킷을 확인합니다.

두 번 확인하십시오 지금 상태가 여전히 명세서에 명시된 조건이 필요합니다.

btw : for 루프는 R에서 매우 느립니다. vectorID의 끝 크기를 알고 있으면 전체 행렬을 사전 할당 해보십시오. 그러면 속도가 빨라질 것입니다.

+0

네 말이 맞아, 고마워 !!!!! –