R 에서 벡터끼리 내적 계산하는 법
코드
x<-1:10; x
y<-(-1)^(1:10); y
sum(x*y)
x %*% y
x %o% y
R 에서 분석 혹은 시뮬레이션을 하다보면 가중치가 적용된 기댓값을 구할 일이 종종 있다. 물론 수식적으로 $\displaystyle \left< \mathbf{x}, \mathbf{y} \right> = \sum_{i=1}^{n} x_{i} y_{i}$ 는 아주 간단하고 R 자체의 벡터 계산이 아주 편리하기 때문에 sum()
함수만 있다면 쉽게 내적을 할 수 있다. 그러나 이는 길게 보았을 때 코드의 가독성을 떨어뜨리는 요인이 된다.
한편 $n$차원 벡터는 $1 \times n$차원 행렬로 볼 수 있다. 이를 이용하면 행렬의 곱을 이용해 간단하게 벡터의 내적을 계산할 수 있다. 이는 놀라운 사실도 무엇도 아닌 단순한 환기에 불과하다.
또 하나의 팁으로, 이항연산 %o%
은 두 벡터의 외적을 반환한다.