본문 바로가기
Study/통계 공부 + R

R 기초: 데이타 클리닝(변인 이름 변경, 변인 척도 변경)

by PhD_Ming 2020. 12. 4.
300x250

R 에서 특정 변인 지칭하기

R 내에서 변인을 지칭하기 위한 코드는 다음과 같다. 데이타에는 내 데이타셋 이름을 쓰고, $ 뒤에는 변인이름을 쓴다. 

data$variable

"데이타 불러오기" 글에서 가져온 데이타셋을 계속 사용할 것이다. 우리가 가진 데이타셋에서 성별을 지칭한다고 해보자. 혼자 해보고 더보기를 통해 확인해보자.

더보기

child_data$gender

*그 전 글에서 하위 데이타 관련해서 배운다고 child_new 데이타셋이 있을 텐데 보기 싫으면 rm(child_new) 하면 오른쪽 창에서 해당 데이타 셋이 사라질 것이다. 

변인 이름 바꾸기 (변인명 변경)

현재 내가 준비해서 업로드한 데이타는 나름 변인 이름이 예쁘게 정리되어 있지만, 패널 데이타 등에서는 온갖 알파벳으로 이루어져있을 것이다. 좀 더 직관적으로 무슨 변인인지 알기 위해 변인 이름을 바꾼다고 하면, 다음과 같은 코드를 사용한다

names(data)[column]<-c("new name")

자, 우리는 names(data) 코드를 통해서 한 데이타 셋의 변인명을 확인했었다. 그러면 names(data)[column]은 무엇을 의미하는 것일까? 바로 해당 콜럼에 해당하는 변인 명을 지칭하는 것이다. 예를 들어 names(data)[1:3]이라고 했을 경우, 첫번째부터 세번째 콜럼에 있는 변인 이름을 지칭하는 것이고, names(data)[c(1:3, 19)]라고 했을 경우엔 첫번째부터 세번째 콜럼, 그리고 19번째 콜럼에 있는 변인 이름을 지칭하는 것이 된다. 

위 코드에서 우리가 콜럼을 하나만 지칭했다면, 하나의 변인명만 입력하면 될 것이다. 우리가 콜럼을 두개를 선택했다면 두개의 변인명을 입력해야한다. 그리고 각각의 이름은 순서대로 지정이 된다. 예를 들어 names(data)[1:3]<-c("new1", "new2", "new3")이라고 했다면, data라는 이름의 데이타셋의 첫번째 콜럼부터 세번째 콜럼까지의 변인 이름은 new1, new2, new3가 되는 것이다.

우리가 가진 데이타셋으로 돌아와서, selfesteem# 변인이 너무 길어서 마음에 안든다고 쳐보자. self로 바꾸기로 했다. 그러면 코드는 어떻게 될까? 혼자 해본 후 아래 더보기를 통해 확인해보자.

더보기

names(child_data)[4:13] <- c("self1", "self2", "self3", "self4", "self5", "self6", "self7", "self8", "self9", "self10")

코드 적용 후 다시 names 코드를 통해 변인 명을 확인해 보면 다음과 같이 selfesteem에서 self로 변경된 것을 볼 수 있다.

변인 유형 바꾸기

R에 존재하는 변인 유형은 다음과 같다.

  • numeric: 소수값이 존재하는 연속 변수라 할 수 있다. num 으로 표시됨
  • integer: 소수값이 존재하지 않는 변인이라 할 수 있다. int로 표시됨.
  • character: 이는 코딩값이 아닌 문자로 이루어진 변인이라 할 수 있다. char로 표시됨.
  • factor: 요인을 지칭하는 변인으로, 명명척도라 생각하면 쉽다. factor로 표시됨. 
  • logical: True 혹은 False 값을 가질 수 있는 변인이라 할 수 있다. log로 표시됨.

변인 유형을 바꾸기 전에 먼저 각각의 칸에 어떠한 변인 유형으로 이루어져있는지 살펴보자. str(data) 기능을 사용하거나 오른쪽 창의 데이타 바로 왼쪽에 역삼각형 아이콘(빨강 동그라미)을 누르면 변인 유형이 주르륵 나올 것이다. 아래 그림을 보면 우리는 ParticipantID 변인을 제외하면 모두 integer로 된 데이타셋임을 확인할 수 있다.

여기서 성별을 factor로 바꾸기로 결정했다고 해보자. 한 변인의 유형을 바꾸려면 다음 코드를 사용하면 된다. 더보기를 클릭하면 우리가 사용하는 예시 데이타에 맞는 코드를 볼 수 있다.

data$var1 <- factor(data$var1)

더보기

child_data$gender<-factor(child_data$gender)

이 코드를 실행 후 오른쪽창을 보면 gender가 factor로 바뀐 것을 볼 수 있다. 

코드를 좀 더 자세히 살펴보자. 즉, 화살표 오른쪽 코드의 의미는 child_data에서의 gender 변인을 factor로 설정하겠다이며, 화살표를 통해 child_data에서 gender변인에 덮어씌우겠다를 표시하는 것이다. 만약에 기존의 변인은 그대로 두고, factor로 만든 gender변인을 추가했으면 한다면 어떻게 할까?

쉽다. data$newvar1 <- factor(data$var1) 이 코드를 사용하면 된다. 이를 사용하면 factor로 변한 var1이 이 데이타셋 내의 newvar1으로 설정된다는 의미이다. 성별은 이미 factor로 바꾸었으니, 학업성취도(aca_achievement)를 factor로 변화해 새 변인을 추가해보자.

child_data$aca_achieve2<-factor(child_data$aca_achieve)

이 코드를 실행한 후, 오른쪽에서 데이타를 확인해보면 제일 아래에 aca_achieve2가 생겼고 factor로 지정되있는 것을 볼 수 있다.

factor외에 다른 유형으로 바꾸고 싶다면 다음 코드를 사용하면 된다.

data$var1<-as.integer(data$var1)
data$var1<-as.numeric(data$var1)
data$var1<-as.logical(data$var1)
data$var1<-as.character(data$var1)

 

변인이름 변경 방법2

위에서 변인이름을 알아봤다. 변인 이름을 바꾸는 또 다른 방법을 소개하고자 한다. 이름하여 pipe operator(%>%)! 파이프 오퍼레이터는 데이타셋을 매번 지정하는게 귀찮을 때 많이 사용되는 명령어이다.  파이프 오퍼레이터를 사용하면 매 변인마다 데이터셋을 적어줄 필요 없이 맨 앞에 한번만 지정하면 된다. 이 파이프 오퍼레이터를 사용하기 위해서는 tidyverse 패키지를 사용한다. 

저번에 엑셀 파일다운받기에서 이미 패키지 설치하는 방법을 알아보았으니 그냥 코드만 알려주고 넘어갈 예정이다. 

install.packagues("tidyverse")

library(tidyverse)

패키지는 한번 설치하면 다시 설치할 필요는 없지만, r 스튜디오를 열때마다 library를 입력해주어야지 그 패키지 내의 코드를 사용할 수 있음을 다시 한번 알려드린다. 

tidyverse 패키지는 rename 코드를 사용해 변인명을 바꾼다. var1을 Peer1로 바꿔주고 so on...!

data %>% rename( var1= Peer1, var2 = Peer2, var3  = Peer3)  

 

반응형

댓글