본문 바로가기
R프로그래밍

R프로그래밍 - matrix와 data.frame의 차이점

by 미스터탁 2020. 6. 22.

아래와 같이 matrix를 선언하고 

 

세번째 column을 강제로 문자형으로 변환후 m의 세번째 칼럼으로 덮어 씌우기 했을 때

 

전체 m의 형태가 모두 문자형 (character)으로 변한 되는 것을 보실 수 있습니다.

 

 

 

m<-matrix(1:15,ncol=3,byrow = T) 
m 
m[,3]<-as.character(m[,3]) 
m

 

 

그런데 우리가 데이터를 다루다 보면 항상 숫자만 있는 것은 아닙니다.

 

성별, 지역 등 문자형 변수가 들어갈 수 밖에 없습니다.

 

그렇기 때문에 각각의 칼럼 별로 다른 class를 가질수 있도록 해주어야 합니다.

 

이를 가능하게 해주는것이 데이터 프레임 (dataframe)입니다.

 

아래 코드를 보시면 matrix를 강제로 data.frame 함수를 통해

 

dataframe으로 만들고 str 함수를 통해 structure를 확인해 보았습니다.

 

모든 column이 int형태인것을 볼 수 있죠.

 

여기서 위와 같이 하나의 칼럼만 문자형으로 바꾸고 다시 str을 확인해보면

 

하나의 column만 문자형으로 바뀐 것을 확인 할 수 있습니다.

 

 

m<-matrix(1:15,ncol=3,byrow = T)

m2<-data.frame(m)

str(m2) 
m2[,3]<-as.character(m2[,3]) 
str(m2)

 

 

정리하면 matrix는 모든 칼럼의 요소가 같은 형태가 들어가야하고 dataframe은 다른 형태가 들어가도 된다 라는 것입니다.

 

더불어 dataframe은 아래와 같이 $칼럼명으로 접근이 가능하고

 

새로운 칼럼을 추가하는 것도 가능합니다.

 

 

m2$X3 
m2$X4<-c("가","나","다","라","마") 
m2

 

 

인프런에서 R강의/딥러닝 강의를 업로드 하고 있습니다.

https://www.inflearn.com/roadmaps/225

 

[입문~활용] 데이터 분석가 되기 with R | 더 나은 학습을 위한 가이드

기초부터 실전까지,R로 시작하는데이터 분석의 세계! 고객 분석, 트렌드·브랜드 분석, 데이터 저널리즘까지... 사물인터넷(IoT)과 빅데이터, 인공지능(AI)과 같은 기술이 주목을 받기 시작하면서 �

www.inflearn.com

 

반응형

댓글