R:dplyr(데이터프레임 조작)
편집하기
둘러보기로 이동
검색으로 이동
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{R}}<br /> ==개요== 데이터 전처리에 편하다. {| class="wikitable" |+ ! ! !주요기여자 |- !전신 |plyr |하들리 위컴, 로메인 프랑소와 |- !목적 | |데이터프레임을 직관적으로 다루기 위함. |- !장점 | |꼭 문법에 맞출 필요 없이 마구잡이로 넣어도 작동한다. |} ===작성요령=== 가독성을 위해 파이프연산자 이후에 개행을 해주는 게 관례이다.(이곳에선 다양한 사례를 좁은 공간에 표현하기 위해 한줄로 쓴다.) ==dplyr== ===데이터 추출, 접근=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |slice() | |index를 설정하여 원하는 행을 추출한다. |데이터셋 = 데이터셋 %>% slice(1:10) |- |select() | |원하는 열 추출. column명을 쓸 수 있다. |데이터셋 = 데이터셋 %>% select(1:10, 열이름1, 열이름2, ...) #여러개 동시 추출 가능 데이터셋 %>% select(열이름1, -열이름2, ...) #'-'가 붙은 열을 제외하고 추출. |- | rowspan="2" |filter() | rowspan="2" | |원하는 행 추출. |데이터셋 = 데이터셋 %>% filter(열이름1 == "해당내용") #해당내용에 일치하는 행만 뽑아낸다. 데이터셋 %>% filter(열이름 >= 50) #50이상만 뽑아낸다. 데이터셋 %>% filter(열이름1 >=50, 열이름2 >70) #조건이 많은 경우, 쉼표로 구분한다. 혹은 &. |- |위에선 and연산이었다면, or연산도 가능. <nowiki>|</nowiki> 연산자나 %in%을 사용한다. |<nowiki>데이터셋 = 데이터셋 %>% filter(열이름1 == "해당내용" | 열이름2 =="해당내용") #or연산도 가능하다.</nowiki> 데이터셋 = 데이터셋 %>% filter(열이름 %in% c("내용1", "내용2")) # %in%연산자로도 가능. |- |select_if() | |뽑는 조건을 설정할 수 있다. ex) 데이터타입에 따라 뽑는다든가. |데이터셋 = 데이터셋 %>% select_if(is.integer) |- |top_n() | |가장 값이 높은 값들을 추출. top_n(숫자, 열이름) |top_n(5, Year) |- | | | | |- | | | | |- | | | | |- | | | | |} ===데이터 조작=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |arrange() | |데이터 정렬. 기본적으로 오름차순인데, 변수에 '-'를 붙여주면 내림차순이 된다. |데이터셋 = 데이터셋 %>% arrange(-열이름) 데이터셋 %>% arrange(-열이름1, 열이름2) #1에 대해 정렬 후에 2에 대한 조건으로 정렬한다. |- | | | | |- | | | | |} ===데이터 변형=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |mutate() | |하나의 변수를 추가한다. 혹은 컬럼 변형. |데이터셋 = 데이터셋 %>% mutate(추가할열이름 = 연산식) 데이터셋 %>% mutate(avg = (math+english)/2) 데이터셋 %>% mutate(열이름 = ifelse(avg>=60, "참값", "거짓값") #ifelse를 활용할 수도 있다. mutate(createdAt = str_replace_all(createdAt, ":", "_")) <nowiki>#</nowiki>createAt 안의 : 들이 _로 바뀌어 들어간다. |- |mutate_if() | |조건에 해당하면 실행한다. mutate_if(판별문, 실행문) |데이터셋 = 데이터셋 %>% mutate_if(조건, 명령) 데이터셋 %>% mutate_if(is.integer, as.numeric) #정수라면 numeric으로 취급한다. <br /> |- |mutate_at() | |지정한 변수들에 대해 계산 적용. 열이름에 '-'를 넣으면 그 변수는 빼고 계산한다. |데이터셋 = 데이터셋 %>% mutate_at(vars(열이름1, 열이름2, ...,), 연산식) |- | | | | |- | | | | |- | | | | |- | | | | |- | | | | |} ===집계데이터 만들기=== {| class="wikitable" !이름 !기원 !기능 !사용법 |- |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() |} {| class="wikitable" !이름 !기원 !기능 !사용법 |- | | | | |- | | | | |- | | | | |- | | | | |- |distinct() | |중복데이터 제거. 해당 열이름에서 하나라도 중복되면 지운다. |데이터셋 = 데이터셋 %>% distinct(열이름1, 열이름2, 열이름3, ...) |}
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:R
(
편집
)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보