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

[R 강의] 83. 행렬 또는 데이터프레임의 행과 열을 바꾸는 방법 t()

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

83. 행렬 또는 데이터프레임의 행과 열을 바꾸는 방법 t()



t()함수를 이용하면 행렬이나 데이터프레임의 행과 열을 바꿀 수 있습니다. 


행과열을 바꾼다는 것을 예를들면 2행1열에 있던 값과 1행2열에 있는 값의 자리를 바꾸는 것입니다. 이렇게 모든 쌍의 자리를 서로 바꿔줍니다. 선형대수학에서는 '전치행렬(transposed matrix)'이라고 합니다. 


1. 행렬에 t() 적용하기


행렬을 정의하고 행과 열을 바꿔봅시다. 아래와 같이 2행2열로 된 행렬을 정의했습니다. 


> M1=matrix(c(1,2,3,4,5,6),nrow=2)

> M1

     [,1] [,2] [,3]

[1,]    1    3    5

[2,]    2    4    6


정의한 행렬에 t() 함수를 적용해봅시다. 


t(M1)

     [,1] [,2]

[1,]    1    2

[2,]    3    4

[3,]    5    6



2. 데이터프레임에 t() 적용하기


데이터프레임을 정의하고 행과 열을 바꿔봅시다. 데이터프레임에도 사용할 수는 있는데, 데이터프레임을 만들 때 의도했던 구성이 깨져버립니다. 쓸 일이 있을지는 모르겠네요. 


> DF1=data.frame(num=c(1,2,3),char=c("a","b","c"),logic=c(TRUE,FALSE,TRUE))

> DF1

  num char logic

1   1    a  TRUE

2   2    b FALSE

3   3    c  TRUE

> str(DF1)

'data.frame': 3 obs. of  3 variables:

 $ num  : num  1 2 3

 $ char : Factor w/ 3 levels "a","b","c": 1 2 3

 $ logic: logi  TRUE FALSE TRUE


정의한 데이터프레임에 t() 함수를 적용해봅시다. 



> DF1_t=t(DF1)

> DF1_t

      [,1]    [,2]    [,3]   

num   "1"     "2"     "3"    

char  "a"     "b"     "c"    

logic " TRUE" "FALSE" " TRUE"

> str(DF1_t)

 chr [1:3, 1:3] "1" "a" " TRUE" "2" "b" "FALSE" "3" "c" " TRUE"

 - attr(*, "dimnames")=List of 2

  ..$ : chr [1:3] "num" "char" "logic"

  ..$ : NULL


데이터프레임에서 한 열에는 같은 종류의 자료형만 올 수 있습니다. 숫자형과 문자형이 함께 있다면 모두 문자형이 됩니다. 따라서 모든 데이터가 문자형으로 바뀐 것을 알 수 있습니다. 

 

영상이 더 편하신 분

반응형

댓글