R:dplyr(데이터프레임 조작): 두 판 사이의 차이
잔글 (→dplyr) |
(→데이터 추가) |
||
(같은 사용자의 중간 판 3개는 보이지 않습니다) | |||
15번째 줄: | 15번째 줄: | ||
!목적 | !목적 | ||
| | | | ||
| | |데이터프레임을 직관적으로 다루기 위함. | ||
|- | |- | ||
!장점 | !장점 | ||
26번째 줄: | 26번째 줄: | ||
==dplyr== | ==dplyr== | ||
===데이터 추출, 접근=== | ===데이터 추출, 접근=== | ||
118번째 줄: | 107번째 줄: | ||
|데이터셋 = 데이터셋 %>% arrange(-열이름) | |데이터셋 = 데이터셋 %>% arrange(-열이름) | ||
데이터셋 %>% arrange(-열이름1, 열이름2) #1에 대해 정렬 후에 2에 대한 조건으로 정렬한다. | 데이터셋 %>% arrange(-열이름1, 열이름2) #1에 대해 정렬 후에 2에 대한 조건으로 정렬한다. | ||
|- | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
|} | |} | ||
===데이터 | ===데이터 변형=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!이름 | !이름 | ||
130번째 줄: | 129번째 줄: | ||
| | | | ||
|하나의 변수를 추가한다. | |하나의 변수를 추가한다. | ||
혹은 컬럼 변형. | |||
|데이터셋 = 데이터셋 %>% mutate(추가할열이름 = 연산식) | |데이터셋 = 데이터셋 %>% mutate(추가할열이름 = 연산식) | ||
데이터셋 %>% mutate(avg = (math+english)/2) | 데이터셋 %>% mutate(avg = (math+english)/2) | ||
데이터셋 %>% mutate(열이름 = ifelse(avg>=60, "참값", "거짓값") #ifelse를 활용할 수도 있다. | |||
mutate(createdAt = str_replace_all(createdAt, ":", "_")) | |||
<nowiki>#</nowiki>createAt 안의 : 들이 _로 바뀌어 들어간다. | |||
|- | |- | ||
|mutate_if() | |mutate_if() | ||
137번째 줄: | 144번째 줄: | ||
|조건에 해당하면 실행한다. | |조건에 해당하면 실행한다. | ||
mutate_if(판별문, 실행문) | mutate_if(판별문, 실행문) | ||
|데이터셋 = 데이터셋 %>% | |데이터셋 = 데이터셋 %>% mutate_if(조건, 명령) | ||
mutate_if(is.integer, as.numeric) | 데이터셋 %>% mutate_if(is.integer, as.numeric) #정수라면 numeric으로 취급한다. | ||
<br /> | |||
|- | |- | ||
|mutate_at() | |mutate_at() | ||
144번째 줄: | 152번째 줄: | ||
|지정한 변수들에 대해 계산 적용. | |지정한 변수들에 대해 계산 적용. | ||
열이름에 '-'를 넣으면 그 변수는 빼고 계산한다. | 열이름에 '-'를 넣으면 그 변수는 빼고 계산한다. | ||
|데이터셋 = 데이터셋 %>% | |데이터셋 = 데이터셋 %>% mutate_at(vars(열이름1, 열이름2, ...,), 연산식) | ||
mutate_at(vars(열이름1, 열이름2, ...,), 연산식) | |- | ||
| | |||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
| | |||
|} | |} | ||
===집계데이터 만들기=== | ===집계데이터 만들기=== | ||
158번째 줄: | 190번째 줄: | ||
|집계기준 조합을 정해준다. | |집계기준 조합을 정해준다. | ||
집계된 그룹을 따라 연산해 열을 만들 수 있다. | 집계된 그룹을 따라 연산해 열을 만들 수 있다. | ||
일반적으로 summarise와 같이 사용. | |||
|데이터셋 %>% group_by(열이름1, 열이름2, ...) #table()과 같은 방식으로 그룹화한다. | |||
|- | |- | ||
|ungroup() | |ungroup() | ||
168번째 줄: | 199번째 줄: | ||
|데이터형 = 기존데이터형 %>% | |데이터형 = 기존데이터형 %>% | ||
ungroup() | ungroup() | ||
|- | |||
|summarise() | |||
| | |||
|요약통계량 산출. | |||
그룹의 통계량을 구할 수 있다. | |||
그룹별로 mean, max 등 값을 얻을 수 있음. | |||
(n함수는 그룹에 해당하는 갯수를 세어주는 함수) | |||
|데이터셋 %>% group_by(열이름1, 열이름2) %>% summarise(열이름3 = 연산, 열이름4 = 연산, ....) | |||
데이터셋 %>% group_by(class, pass) %>% summarise(n_pass =n()) #반별로 pass 여부를 세어준다. | |||
|- | |- | ||
|count() | |count() |
2020년 9월 26일 (토) 11:13 기준 최신판
R언어 공부를 위한 틀 틀:R
개요[편집 | 원본 편집]
데이터 전처리에 편하다.
주요기여자 | ||
---|---|---|
전신 | plyr | 하들리 위컴, 로메인 프랑소와 |
목적 | 데이터프레임을 직관적으로 다루기 위함. | |
장점 | 꼭 문법에 맞출 필요 없이 마구잡이로 넣어도 작동한다. |
작성요령[편집 | 원본 편집]
가독성을 위해 파이프연산자 이후에 개행을 해주는 게 관례이다.(이곳에선 다양한 사례를 좁은 공간에 표현하기 위해 한줄로 쓴다.)
dplyr[편집 | 원본 편집]
데이터 추출, 접근[편집 | 원본 편집]
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
slice() | index를 설정하여 원하는 행을 추출한다. | 데이터셋 = 데이터셋 %>%
slice(1:10) | |
select() | 원하는 열 추출. column명을 쓸 수 있다. | 데이터셋 = 데이터셋 %>% select(1:10, 열이름1, 열이름2, ...) #여러개 동시 추출 가능
데이터셋 %>% select(열이름1, -열이름2, ...) #'-'가 붙은 열을 제외하고 추출. | |
filter() | 원하는 행 추출. | 데이터셋 = 데이터셋 %>% filter(열이름1 == "해당내용") #해당내용에 일치하는 행만 뽑아낸다.
데이터셋 %>% filter(열이름 >= 50) #50이상만 뽑아낸다. 데이터셋 %>% filter(열이름1 >=50, 열이름2 >70) #조건이 많은 경우, 쉼표로 구분한다. 혹은 &. | |
위에선 and연산이었다면, or연산도 가능.
| 연산자나 %in%을 사용한다. |
데이터셋 = 데이터셋 %>% filter(열이름1 == "해당내용" | 열이름2 =="해당내용") #or연산도 가능하다.
데이터셋 = 데이터셋 %>% filter(열이름 %in% c("내용1", "내용2")) # %in%연산자로도 가능. | ||
select_if() | 뽑는 조건을 설정할 수 있다.
ex) 데이터타입에 따라 뽑는다든가. |
데이터셋 = 데이터셋 %>%
select_if(is.integer) | |
top_n() | 가장 값이 높은 값들을 추출.
top_n(숫자, 열이름) |
top_n(5, Year) | |
데이터 조작[편집 | 원본 편집]
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
arrange() | 데이터 정렬.
기본적으로 오름차순인데, 변수에 '-'를 붙여주면 내림차순이 된다. |
데이터셋 = 데이터셋 %>% arrange(-열이름)
데이터셋 %>% arrange(-열이름1, 열이름2) #1에 대해 정렬 후에 2에 대한 조건으로 정렬한다. | |
데이터 변형[편집 | 원본 편집]
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
mutate() | 하나의 변수를 추가한다.
혹은 컬럼 변형. |
데이터셋 = 데이터셋 %>% mutate(추가할열이름 = 연산식)
데이터셋 %>% mutate(avg = (math+english)/2) 데이터셋 %>% mutate(열이름 = ifelse(avg>=60, "참값", "거짓값") #ifelse를 활용할 수도 있다.
#createAt 안의 : 들이 _로 바뀌어 들어간다. | |
mutate_if() | 조건에 해당하면 실행한다.
mutate_if(판별문, 실행문) |
데이터셋 = 데이터셋 %>% mutate_if(조건, 명령)
데이터셋 %>% mutate_if(is.integer, as.numeric) #정수라면 numeric으로 취급한다.
| |
mutate_at() | 지정한 변수들에 대해 계산 적용.
열이름에 '-'를 넣으면 그 변수는 빼고 계산한다. |
데이터셋 = 데이터셋 %>% mutate_at(vars(열이름1, 열이름2, ...,), 연산식) | |
집계데이터 만들기[편집 | 원본 편집]
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
group_by() | 집계기준 조합을 정해준다.
집계된 그룹을 따라 연산해 열을 만들 수 있다. 일반적으로 summarise와 같이 사용. |
데이터셋 %>% group_by(열이름1, 열이름2, ...) #table()과 같은 방식으로 그룹화한다. | |
ungroup() | 다시 사용할 땐 에러방지를 위해 ungroup 해주기. | 데이터형 = 기존데이터형 %>%
ungroup() | |
summarise() | 요약통계량 산출.
그룹의 통계량을 구할 수 있다. 그룹별로 mean, max 등 값을 얻을 수 있음. (n함수는 그룹에 해당하는 갯수를 세어주는 함수) |
데이터셋 %>% group_by(열이름1, 열이름2) %>% summarise(열이름3 = 연산, 열이름4 = 연산, ....)
데이터셋 %>% group_by(class, pass) %>% summarise(n_pass =n()) #반별로 pass 여부를 세어준다. | |
count() | 그룹화 이후에 사용하면 해당 그룹에 속한 데이터 갯수를 세어준다. | 집계데이터 = 데이터셋 %>%
group_by(열이름1, 열이름2) %>% count() |
이름 | 기원 | 기능 | 사용법 |
---|---|---|---|
distinct() | 중복데이터 제거.
해당 열이름에서 하나라도 중복되면 지운다. |
데이터셋 = 데이터셋 %>%
distinct(열이름1, 열이름2, 열이름3, ...) |