컴퓨터/R

R - dplyr 라이브러리 ① filter, select, arrange, %>%, mutate

해피밀세트 2020. 4. 16. 16:24

 

 

dplyr 라이브러리

  • filter : 조건을 이용해서 필터링하는 함수
  • select : 여러컬럼이 있는 데이터 프레임에서 특정한 열만 선택하는 함수
  • arrange : 정렬
  • %>% : 여러문장을 조합해서 사용하는 방법을 제공(파이프)
  • mutate : 새로운 컬럼을 추가하는 함수

 

# dplyr 라이브러리 임포트

library(dplyr)

 

 

1. filter

# 기본 사용법

filter(emp, DEPARTMENT_ID==20)

# 출력 컬럼 지정

filter(emp, DEPARTMENT_ID==20)[,c('LAST_NAME','SALARY')]

 

 

2. select

# 기본 사용법

select(emp,LAST_NAME,SALARY)

select(emp,1,2)

# 출력 컬럼 인덱스 번호로 사용

select(emp,1,2)

# 출력 컬럼 슬라이싱

select(emp,1:4)

 

# 여러개의 컬럼 출력

select(emp,2,4,6)

# 인덱스 번호로 출력 컬럼 제외

select(emp,-1:-7)

# 컬럼 이름으로 출력 컬럼 제외

select(emp,-EMPLOYEE_ID:-SALARY)

 

 

3. arrange

# 오름차순

arrange(emp, SALARY)

# 내림차순

arrange(emp, desc(SALARY))

arrange(emp,DEPARTMENT_ID,desc(SALARY))[c('DEPARTMENT_ID','SALARY')]

 

 

4. %>%

# 기본 사용법

emp%>%

  select(LAST_NAME,JOB_ID,SALARY)%>%

  filter(SALARY>=10000)

# arrange와 함께 사용 

emp%>%
  select(LAST_NAME,JOB_ID,SALARY)%>%
  filter(SALARY>=10000)%>%
  arrange(desc(SALARY))

 

 

5. mutate

emp <- mutate(emp,ann_sal=SALARY*12)
str(emp) 
emp %>%
  select(LAST_NAME,SALARY,COMMISSION_PCT) %>%
  mutate(ann_sal = 0)
emp %>%
  select(LAST_NAME,SALARY,COMMISSION_PCT) %>%
  mutate(ann_sal = SALARY*12+ifelse(is.na(COMMISSION_PCT),0, SALARY*COMMISSION_PCT))

# 정렬도 하자

emp %>%

  select(LAST_NAME,SALARY,COMMISSION_PCT) %>%

  mutate(ann_sal = SALARY*12+ifelse(is.na(COMMISSION_PCT),0,

                                    SALARY*COMMISSION_PCT))%>%

  arrange(desc(ann_sal))

# filter안에 넣은 컬럼이름은 반드시 select에도 들어가 있어야한다.

emp %>%
  select(LAST_NAME,SALARY,COMMISSION_PCT) %>%
  mutate(ann_sal =
SALARY*12+ifelse(is.na(COMMISSION_PCT),0,SALARY*COMMISSION_PCT))%>%
  filter(DEPARTMENT_ID==20)%>%
  arrange(desc(ann_sal))

# filter안에 넣은 컬럼이름은 반드시 select에도 들어가 있어야한다.

emp %>%
 select(LAST_NAME,SALARY,COMMISSION_PCT,DEPARTMENT_ID) %>%
  mutate(ann_sal =
SALARY*12+ifelse(is.na(COMMISSION_PCT),0,
SALARY*COMMISSION_PCT))%>% filter(DEPARTMENT_ID==20)%>%
  arrange(desc(ann_sal))

반응형

'컴퓨터 > R' 카테고리의 다른 글

R - sqldf  (0) 2020.04.17
R - dplyr 라이브러리 ② summarise , group_by  (0) 2020.04.17
R - subset / ddply  (0) 2020.04.16
R - merge  (0) 2020.04.15
R - 전역변수 / 지역변수  (0) 2020.04.15