R에서는 dplyr 패키지를 이용하여 데이터 전처리를 진행할 수 있습니다.
dplyr 함수는 아래 8가지가 있으며, 오늘은 첫 5가지 함수에 대해 알아보려고 합니다.
- filter( )
- select( )
- arrange( )
- mutate( )
- summarise( )
- group_by( )
- left_join( )
- bind_rows( )
filter( ): 행 추출
예시 1) 1반 또는 2반 값만 출력
filter(df, class == '1' | class == '2')
#또는
df %>% filter(class == '1' | class == '2')
예시 2) 수학 50 이상, 영어 80 이상인 행 출력
df %>% filter(math >= 50, english >= 80)
예시 3) 위 두 조건 합쳐서 입력
df %>%
filter(class == '1' | class == '2') %>%
filter(math >= 50, english >= 80)
select( ) : 열(변수) 추출
예시 1) math, english 열 출력
df %>% select(math, english)
예시 2) science 열만 제외하고 출력
df %>% select(-science)
arrange( ): 데이터 정렬
예시 1) math열을 기준으로 오름차순 정렬
df %>% arrange(math)
예시 2) score열을 기준으로 내림차순 정렬
df %>% arrange(desc(score))
mutate( ): 변수 추가
예시 1) math, science, art의 총합을 구해 total 변수 생성
df %>% mutate(total = math, science, art)
예시 2. math, science, art의 평균을 구해 mean변수 생성
df %>% mutate(mean = (math, science, art)/3)
summarise( ): 통계치 산출
summarise( )는 대개 group_by( ) 함수와 함께 사용됩니다.
예시 1) 수학 평균 요약
df %>% summarise('math_mean' = mean(math))
예시 2) 반별 평균 출력
df %>% group_by(class) %>% summarise('mean' = mean(total))
연습문제 1. 5반 학생들의 미술 점수만 출력하는 함수를 작성해보시오.
정답:
df %>% filter(class == '5') %>% select(class, art)
연습문제 2. 나이는 내림차순, 영어와 수학 점수는 오름차순으로 정렬해보시오.
정답:
df %>% arrange(desc(age), english & math)
연습문제 3. 제조사(manufacturer)별로 SUV인 차의 고속도로 주행연비(hwy)의 평균을 구해보시오.
정답:
df %>% group_by(manufacturer) %>%
filter(class == 'suv') %>%
summarise(hwy_mean = mean(hwy))
'R' 카테고리의 다른 글
R - plotly: ggplot2 패키지 (2) (0) | 2022.03.17 |
---|---|
R - plotly: ggplot2 패키지 (1) (0) | 2022.03.17 |
R - 이상치/결측치 확인 및 처리 방법 (0) | 2022.03.17 |
R - dplyr 패키지 (2) (group_by/ left_join/ bind_rows) (0) | 2022.03.17 |