2011-03-14 6 views
3

과 같이 2 개의 벡터를 추가하고 싶지만 for 루프를 피하십시오.. 간단한 방법이 있습니까? 감사합니다특수 벡터 추가 R

vadd<-function(vrow,vcol){ 
vmatrix<-matrix(nrow=length(vrow),ncol=length(vcol)) 
for(r in 1:length(vrow)){#rows 
    for(c in 1:length(vcol)){#columns 
     vmatrix[r,c]<-vrow[r]+vcol[c] 
    } 
} 
return(vmatrix) 
} 

a<-c(1:10) 
b<-c(3:4) 
vadd(a,b) 

, 브라이언

답변

11

찾고있는 내용은입니다.3210, 다음과 같이 :

> outer(a, b, "+") 
     [,1] [,2] 
[1,] 4 5 
[2,] 5 6 
[3,] 6 7 
[4,] 7 8 
[5,] 8 9 
[6,] 9 10 
[7,] 10 11 
[8,] 11 12 
[9,] 12 13 
[10,] 13 14 
+0

니스. 모두 도움을 주셔서 감사합니다. 이것들은 훌륭합니다. – Brian

+0

@ user658733 세 가지 대답 중 하나가 문제를 해결하면 하나를 선택하여 수락 할 수 있습니까? 답변을 수락하려면 투표의 번호 옆에있는 답의 왼쪽에있는 체크 표시/체크 표시를 클릭하십시오. 이것을하는 주된 이유는 다른 사람이 검색을 통해 Q를 찾으면 질문이 만족스럽게 응답되었는지 아닌지 알게 될 것입니다. –

+0

오, 오케이! 코멘트 주셔서 감사합니다. – Brian

3

당신은 매트릭스에 b을 넣고 R의 재활용 규칙을 이용할 수 있습니다 : 여기

a + matrix(b, nrow=length(a), ncol=2, byrow=TRUE) 
3

한 가지 당신이 할 수 있습니다 :

a<-c(1:10) 
b<-c(3:4) 

matrix(b,length(a),2,byrow=TRUE)+a