R 에서 데이터 프레임의 열과 행 이름 바꾸기
개요
R 에서 데이터 프레임을 이용해 복잡한 코드를 짜다보면 디폴트로 정해주는 열 이름들이 헷갈려서 바꿔줘야 할 상황이 있다.
names()
예제로써 위 데이터 프레임을 보면 별 다른 언급이 없으면 V1, V2, V3처럼 무성의하고 구분하기 힘든 열 이름이 주어진다. 여기에 names() 함수를 씌우면 열 이름을 반환하며, 반대로 거기에 바로 문자열을 넣어 열 이름을 바꿀 수 있다.
그냥 단순히 대입하는 것만으로 V1, V2, V3가 각각 un, du, tri로 바뀐 것을 확인할 수 있다. 물론 이를 위해서는 원래 열의 수와 성분의 수가 같도록 문자열의 벡터를 줘야한다. 작은 규모의 데이터 처리에선 큰 상관이 없지만, 독립변수만 50개를 훌쩍 넘어가는 빅데이터 등에선 다루는 게 곤란하다.
인덱싱
귀찮게 벡터를 줄 게 아니라 특정 열만 바꾸고 싶다면 다음과 같이 인덱싱을 통해 해결할 수 있다.
두번째 열 이름이었던 du만 깔끔하게 two로 바뀐 것을 확인할 수 있다.
dimnames()
자주 쓸 일은 없지만, 행의 이름을 바꿀 때는 dimnames()
함수를 사용한다. dimnames()
는 이름 그대로 차원dimension의 이름들names를 리스트형으로 반환하거나 참조하는 함수다.
열 이름을 바꾸는것만큼 간단하지는 않지만, 깔끔하게 행 이름이 바뀐 것을 확인할 수 있다.
코드
아래는 예제코드다.
example <- as.data.frame(matrix(c(5,10,3,12,15,78),nrow=2)); example
names(example)<-c("un","du","tri"); example
names(example)[2]<-"two"; example
dimnames(example) <- list(row=c("첫줄","둘째줄"),col=names(example)); example