데이터 처리

[R] 기초 데이터 분석에서 자주 쓰는 dplyr 패키지 내 함수 표현들 TOP10 (전처리에 유용한 filter, mutate, arrange 등)

토마토씨 2022. 3. 25. 22:16

안녕하세요.

토마토입니다🍅

 

제가 R을 처음 배웠을 떼 유용했던 표현들 정리해서 공유드립니다.

처음 시작할 때 주변에서는 'dplyr만 잘 알아도 충분할 정도다!' 라고 말했는데, 정말로 dplyr 패키지는 강력했습니다.

 

dplyr bb

 

각설하고 바로 시작할게요!

 

 

 

각자의 상황에 맞게 바꾸어야 하는 부분들은 주황색으로 표기 되어 있습니다. 

column_name : 함수를 적용할 컬럼명

dataframe_name: 대상 데이터프레임명

 

 

A. mutate 

1. 조건 설정하기. 특정 값을 다른 값으로 대체 (예를 들어, 칼럼의 값 중 a인 것만 A로 바꾸고 나머지는 B로 한다)
mutate(column_name = ifelse(column_name == "a", "A", "B")

==자리에 < , > 등 응용 가능

조건을 여러개 활용하고 싶은 경우

mutate(column_name  = ifelse(column_name == "a", "A", ifelse(column_name  =="b", "B", "C"))

 

2. 데이터 타입 변경
mutate(column_name = as.numeric(column_name)  -- 숫자형으로 변경)
mutate(column_name = as.integer(column_name) -- 정수형으로 변경)

 

##데이터 타입 유형 참고##
character (문자), numeric (실수), integer (정수), complex(복소수), logical (논리형: TRUE | FALSE)

 

3. 컬럼 이름 변경
mutate(atfer_change_name = before_change_name)

 

 

B. filter

4.특정 문자 포함값만 남기기or 제거
filter(str_detect(column_nm, "문자열")==TRUE/FALSE 중 선택))

## "문자열" 들어가는 자리에 활용 가능한 조건들##
& = and 
| = or 
%in% =특정값을 포함하는지 여부

 

C. arrange

5. 컬럼 값 정렬하기

arrange(column_name) -- 기본 오름차순 설정

arrange(desc(column_name) -- 내림차순

 

 

 

D, E, F- 1 SET로 자주 활용

 

D. select

6. 특정 컬럼만 선택

select(column_name1, column_name2, column_name3 ...)

 

E. group by 

7. 그룹화 시키기

group_by(column_name1, column_name2, column_name3 ...)

 

F. summarise

8. group_by 처리 후 컬럼 끼리의 값 계산 (평균, 합계 등)

summarise(colmun_name1= mean(colmun_name1), colmun_name2 = sum(colmun_name2))

 

특정 칼럼의 값이 몇 개인지 확인 (예를 들어 a,b,c,d,e 데이터가 있는 컬럼 A에서 a의 개수는?)

summarise(new_column_name= n_distinct(colmun_name))

 

 

G. 결측값(NA)

9.데이터 프레임 내 모든 컬럼별 결측치 확인
colSums(is.na(dataframe_name))

10.결측값을 0으로 처리 
dataframe_name[is.na(column_name)] <- 0 

(데이터 프레임 내의 na 값을 0으로 처리한다. 물론 문자형은 실행 되지 않는다)

dataframe_name$column_name[is.na(column_name$column_name)] <- 0 

(다음과 같이 특정 컬럼 내 na값만 0으로 처리 되도록 응용 가능하다)

R said: Can't convert <double> to <character>.

 

11.결측값을 제거

dataframe_name <-na.omit(dataframe_name) -- 데이터 프레임 내의 한가지 값만 na 여도 해당 na 값 포함된 행 삭제. 데이터 프레임 내 na 값이 하나도 없는 상태

dataframe_name <-na.omit(dataframe_name$column_name)

dataframe_name$column_name[is.na(column_name$column_name)] <- 0

 

 

 

 

이상 간단하게 정리해보았는데요.

다음편에서도 간단하지만 유용한 표현들, 공유 드리겠습니다.

 

 

읽어주셔서 감사합니다:)