Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Alchemist

[R studio - 2] 데이터 가공하기 본문

R-coding

[R studio - 2] 데이터 가공하기

Alchemist__ 2019. 5. 14. 17:18

#1 데이터 전처리

'데이터 전처리(Data Preprocessing)' - 분석에 적합하게 데이터를 가공하는 작업

데이터의 일부를 추출하거나, 종류별로 나누거나, 여러 데이터를 합치는 등의 가공 작업을 말한다.

 dplyr 함수 기능
filter() 행 추출
select() 열(변수) 추출
arrange() 정렬
mutate() 변수 추가
summarise() 통계치 산출
group_by() 집단별로 나누기
left_join() 데이터 합치기(열)
bind_rows() 데이터 합치기(행)

 

library(dplyr)
exam <- read.csv("csv_exam.csv")
exam

 

exam의 데이터 프레임

 

 

실습을 위해 csv_exam.csv 파일을 데이터 프레임(exam) 으로 만들어 출력해보았다.

dplyr 패키지는 %>% 기호를 이용해 함수들을 나열하는 방식으로 코드를 작성한다.

 

 

#2 조건에 맞는 데이터만 추출하기

dplyr 패키지의 filter()를 이용하면 원하는 데이터(일부)를 추출할 수 있다.

 

#exam에서 class가 1인 경우만 추출해 출력

exam %>% filter (class == 1)

class가 1인 데이터만 출력되었다.

 

이를 응용해 여러가지 조건을 충족하는 행을 추출할 수도 있다.

[ & - and ]  [ | - or ] 등등..

%in%와 c() 함수를 함께 이용해 조건 목록을 입력하면 더욱 간편한 코드 작성이 가능하다.

 

#3 필요한 변수만 추출하기

select()를 이용하면 일부 변수만 추출해 활용할 수 있다.

 

#exam에서 math 변수만 추출하기

exam %>% select(math)

math 변수만 추출되었다.

쉼표를 넣어 변수명을 나열하면 여러 변수를 동시에 추출할 수도 있고,

제외할 변수명 앞에 - (빼기) 기호를 입력하면 해당 변수만 제외하고 추출할 수 있다,

 

#4 순서대로 정렬하기

arrange()를 이용하면 데이터를 원하는 순서로 정렬할 수 있다.

arrange()에 변수명을 입력하면 오름차순으로 데이터를 정렬해주며,

 변수에 desc()를 적용해주면 내림차순으로 정렬해준다.

 

#math 오름차순 정렬

exam %>% arrange(math)

math 변수가 오름차순으로 정렬되었다.

 

#math 내림차순 정렬

exam %>% arrange (desc(math))

math 변수가 내림차순으로 정렬되었다.

 

#5 파생변수 추가하기

mutate()를 사용하면 기존 데이터에 파생변수를 만들어 추가할 수 있다.

mutate()에 새로 만들 변수명과 변수를 만들 때 사용할 공식을 이용하면 된다.

 

#세 과목의 점수를 합한 총합 변수 total 만들기

exam %>%
	mutate(total = math + english + science)

세 과목을 더한 total이라는 변수가 추가되었다.

 

쉼표를 이용해 새 변수명과 변수를 만드는 공식을 나열하면 여러 파생변수를 한번에 추가할 수 있다.

mutate()에 ifelse()를 적용하면 조건에 따라 다른 값을 부여한 변수를 추가할 수 있다.

 

 

#6 집단별로 요약하기

각 집단을 요약한 값을 구할 때는 group_by()와 summarise()를 사용한다.

두 함수들을 이용해 요약표를 만들면 집단 간에 어떤 차이가 있는지 쉽게 파악이 가능하다.

 

#summarise()를 이용하여 수학 점수 평균을 구한 후 새 변수에 할당해 출력해보기

exam %>% summarise(mean_math = mean(math))

수학 평균을 mean_math 변수에 할당해 출력.

 

#group_by()를 이용해 변수 항목별로 데이터를 분리하고, summarise()를 조합해 집단별 요약 통계량 산출하기

exam %>% 
	group_by(class) %>%
    summarise(mean_math = mean(math))

반별 수학 점수 평균

 

mutate로 여러 변수를 동시에 추가했던 것처럼 summarise로도 한번에 여러 요약 통계량을 산출할 수 있다.

 

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019