본문 바로가기
R 주제/R 기초 및 통계 강의

[R 강의] 85. R에서 정의된 벡터는 열벡터일까 행벡터일까

by 만다린망고 2020. 4. 4.
반응형
도구 R로 푸는 통계

85. R에서 정의된 벡터는 열벡터일까 행벡터일까



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에서 벡터를 정의한 코드를 뜯어보지는 못했지만, 아마 곱해지는 행렬에 따라 행벡터가 되기도 하고 열벡터가 되기도 하도록 정의된 것 같네요. 

 

 

 

영상이 더 편하신 분

 

반응형

댓글