본문 바로가기

R데이터전처리

[R-전처리] 데이터 프레임에서 특정 변수 추출(dplyr select)

데이터를 분석하기 위해 Raw data를 받았을 때 모든 열을 다 변수로 활용하는 것은 아니다.

분석에 사용하지 않는 변수를 제외하고 필요한 열만 추출하면 데이터 분석을 할 때 비용을 절약할 수 있다.

 

 

< 실습 데이터 >

서울시 2020년 2월 한 달간 역별 6호선 승하차 데이터

 

line6_seoul.csv
0.04MB

 

# data load
setwd("C:\\Users\\user\\Desktop\\data")
line6 <- read.csv("line6_seoul.csv", header=T, stringsAsFactor=F)

str(line6)
View(line6)

 

 

 

 

 

 

< 열 순번을 이용한 추출 >

데이터명[행, 열]  인덱싱 방식을 통해 원하는 변수를 추출할 수 있다.

행자리는 비워두면 모든 행이 선택된다.

 

View(line6[, 4:6])
View(line6[, c(4, 6)])

 

 

 

 

 

 

< 열 이름을 이용한 추출 >

인덱싱 방식은 동일하나 데이터명[, 열이름] 으로 변수를 추출할 수도 있다.

열 순번을 이용한 방식보다 나중에 코드를 확인 할 때 좀 더 용이하다.

 

View(line6[, c("역명", "승차총승객수")])

 

 

 

 

 

 

< dplyr 패키지를 이용한 추출 >

plyr 패키지를 많이 사용했지만 모든 함수가 R로 작성되어있어서 데이터가 커지면 처리 속도가 느리다는 단점이 있었다.

dplyr 패키지는 C++로 함수가 작성되어 처리 속도가 빠르다.  

 

install.packages("dplyr")
library(dplyr)

 

dplyr 패키지의 기본이 되는 함수는 5개 이다.

filter (조건에 맞는 데이터 추출), select (열 추출), mutate (열 추가), arrange (정렬), summarise (집계)

 

원하는 특정 변수 추출은 select ( )를 이용한다.

 

select(데이터명, 변수명1, 변수명2) 등으로 추출하면 된다.

 

select(line6, 역명, 승차총승객수, 하차총승객수) %>%
  View()
  
# View(select(line6, 역명, 승차총승객수, 하차총승객수)) 와 같은 의미의 코드이다.
# 괄호를 많이 쓰는 것보다 %>% 방식의 코딩이 좀 더 직관적이다.

 

 

dplyr 패키지는 %>%로 출력을 다음 입력에 전달하는 것이 가능하다.

예를 들면 df %>% f1( ) 은 f1함수에 df를 입력한 f1(df)와 같다.

그리고 df %>% f1( ) %>% f2( ) f2(f1(df) 와 같다.  

 

%>%를 파이프라고 하며,  데이터를 길게 핸들링 할 때는 파이프를 이용하면 가독성이 좋아진다.

 

 

 

열 선택 옵션,

1) starts_with(string) : 지정한 문자열로 시작하는 이름을 가진 열 추출

2) ends_with(string) : 지정한 문자열로 끝나는 이름을 가진 열 추출

3) contains(string) : 지정한 문자열을 포함하는 이름을 가진 열 추출

4) matches(string) : 지정한 정규 표현으로 매칭된 열 추출

 

line6 %>%
  select(starts_with("역"), ends_with("승객수")) %>%
  View()


line6 %>%
  select(역명, contains("승객")) %>%
  View()