85. R에서 정의된 벡터는 열벡터일까 행벡터일까
벡터를 하나 정의해봅시다.
v=c(1,2,3)
> v
[1] 1 2 3
열벡터인지 행벡터인지 알고 싶어 dim함수를 적용해보면 NULL값이 반환됩니다.
> dim(v)
NULL
반면에 matrix함수를 이용하여 열벡터 혹은 행벡터를 정의하면 dim 함수 적용이 가능합니다.
> m1=matrix(c(1,2,3),nrow=1)
> dim(m1)
[1] 1 3
1행3열짜리 행렬이라는 의미입니다.
벡터가 행렬에 포함되는 개념이고, 이 둘은 다시 배열에 포함됩니다. 1차원 배열이 벡터이고, 2차원배열이 행렬입니다. 개념상으로는 그렇긴 한데, marix함수로 만든 벡터와, c() 로 만든 벡터는 다릅니다.
> class(m1)
[1] "matrix"
> class(v)
[1] "numeric"
그렇다면 R에서 정의된 벡터는 행벡터인지 열벡터인지 어떻게 알 수 있을까요?
행렬의 곱셈을 이용해봅시다.
아래와 같이 원소 2개인 벡터와, 2행2열 행렬을 정의합시다.
v2=c(1,2)
m2=matrix(c(1,2,3,4),nrow=2)
> v2
[1] 1 2
> m2
[,1] [,2]
[1,] 1 3
[2,] 2 4
행렬곱을 해봅시다.
> v2%*%m2
[,1] [,2]
[1,] 5 11
곱해집니다. 행벡터라는겁니다. 그런데,
> m2%*%v2
[,1]
[1,] 7
[2,] 10
반대로도 곱해집니다. 열벡터라는겁니다.
응??열벡터라는거야 행벡터라는거야??
R에서 벡터를 정의한 코드를 뜯어보지는 못했지만, 아마 곱해지는 행렬에 따라 행벡터가 되기도 하고 열벡터가 되기도 하도록 정의된 것 같네요.
영상이 더 편하신 분
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R 강의] 87. 마진(margin)과 테두리 선 넣기 (0) | 2020.05.18 |
---|---|
[R 강의] 86. 결측치(NA) 확인, 제거, 수정하는 방법 (0) | 2020.05.15 |
[R 강의] 84. 행렬의 곱셈 (0) | 2020.04.04 |
[R 강의] 83. 행렬 또는 데이터프레임의 행과 열을 바꾸는 방법 t() (0) | 2020.04.02 |
[R 강의] 82.R스튜디오 레이아웃 바꾸는 방법 (0) | 2020.04.02 |
댓글