[R] dplyr 패키지를 이용한 손쉬운 데이터 조작
- R
- 2024. 8. 1.
dplyr 패키지를 이용한 데이터 조작
안녕하세요~ 이번 포스팅에서는 R의 패키지인 dplyr에 대해 이야기해보려고 합니다. dplyr은 데이터를 효율적으로 다루기 위해 만들어진 패키지로, 간결하고 쉬운 코드를 작성하는데 유용합니다. 특히, 파이프(%>%)를 이용한 코드가 가능하기 때문에 한번에 데이터 조작을 할 수 있습니다. 그럼 주요 기능들을 살펴보겠습니다.
dplyr 패키지 소개
dplyr은 Hadley Wickham이 개발한 패키지로, 데이터 프레임을 조작하는데 최적화되어 있습니다. 패키지 없이 R로 다 해결하려면 코드양이 많아지지만 dplyr 를 사용하면 코드량을 획기적으로 줄일 수 있습니다.
주요기능은 다음과 같습니다.
- filter() : 행 필터링
- select() : 열 선택
- mutate() : 새로운 열 추가
- summarize() : 데이터 요약
- arrange() : 행 정렬
- group_by() : 그룹화
어떻게 쓰는지 예제를 통해 알아보겠습니다.
데이터는 R의 내장 데이터인 mtcars로 해보겠습니다.
data <- mtcars
head(data)
filter() : 행 필터링
필터링은 데이터분석에서 빼놓을 수 없는 중요한 요소입니다. dplyr filter() 함수는 조건에 맞는 행을 선택해줍니다. 예를 들어, 연비(mpg)가 20이상인 행을 선택하려면 다음과 같이 합니다.
filtered_data <- data %>% filter(mpg >=20)
head(filtered_data)
select() 함수 : 열 선택
select() 함수는 내가 필요한 열만 선택할 수 있습니다.
mpg,cyl,hp 열만 선택해보겠습니다.
selected_data <- data %>% select(mpg,cyl,hp)
head(selected_data)
mutate() 함수 : 새로운 열 추가
dplyr를 이용해 열을 추가하려면 mutate() 함수를 쓰면 간단하게 할 수 있습니다. 무게(wt)를 킬로그램으로 변환한 열을 추가하면 다음과 같이 할 수 있습니다.
mutated_data <- data %>% mutate(wt_kg=wt*453.592)
head(mutated_data)
wt_kg라는 새로운 열이 추가되었습니다.
summarize() : 데이터 요약
데이터를 요약하려면 summarize()함수를 씁니다. 특히, group_by()와 같이 쓰면 시너지를 낼 수 있습니다. group_by()를 통해 그룹별 요약 통계를 계산하고 summarize()를 통해 정리를 합니다.
summarized_data <- data %>% group_by(cyl) %>% summarize(mean_mpg = mean(mpg, na.rm=TRUE))
print(summarized_data)
arrange() : 행 정렬
arrange() 함수는 데이터를 정렬하는 데 사용됩니다. 내림차순(desc)이나 오름차순(asc)으로 정렬합니다. 예를 들어, 연비(mpg)를 기준으로 데이터를 내림차순으로 정렬하려면 다음과 같이 할 수 있습니다.
arranged_data <- data %>% arrange(desc(mpg))
head(arranged_data)
파이프 연산을 이용한 조작
파이프연산을 흔히 체인연산자라고 합니다. 파이프연산을 이용하면 여러번 해야하는 데이터 조작을 한꺼번에 할 수 있습니다. dplyr에서만 할 수 있는 특이한 방법입니다. 파이프 연산을 연비가 20이상인 차량 중 실린더별로 평균 마력을 계산해보겠습니다.
complex_data <- data %>%
filter(mpg >= 20) %>%
group_by(cyl) %>%
summarize(mean_hp = mean(hp, na.rm = TRUE)) %>%
arrange(desc(mean_hp))
print(complex_data)
마치며
dplyr에 대한 기능을 소개했습니다. 사실, R로도 가능하지만 dplyr로 쉬운 코드와 빠른 결과를 볼 수 있기에 데이터프레임을 조작하는데 아주 괜찮은 것 같습니다.
함께보면 좋은 글
'R' 카테고리의 다른 글
[R] ggplot2로 데이터 그래프 그리기 (0) | 2024.08.05 |
---|---|
R 새로운 열 추가 방법 총정리 (0) | 2024.08.03 |
R 데이터 변환 정리글 (0) | 2024.07.31 |
[R] 결측치 처리 (0) | 2024.07.30 |
[R] 데이터 타입 변경하기 (0) | 2024.07.29 |