본문 바로가기

R데이터전처리

(7)
[R-전처리] 데이터 테이블 조인(dplyr join) 실전 업무에서 데이터베이스는 데이터 종류별로 테이블이 나뉘기 때문에 하나의 테이블에 필요한 데이터 모두 포함된 경우는 드물다. 이상적인 분석용 데이터를 만들기 위해서는 데이터 테이블을 결합하는 처리가 필요하다. 학생테이블, 수업테이블 그리고 수강 신청 테이블을 각각 생성한다. # 학생테이블 students % filter(major == "경영학과"), lec_stu, by=('studentID') ) %>% View() 이중 삼중으로 데이터를 조인할 수도 있다. # 수강신청 테이블과 학생 테이블을 조인한 뒤, 수업테이블과 조인 inner_join((inner_join(lec_stu, students, by=('studentID'))), lecture, by=('lec_c..
[R-전처리] 데이터 집계함수(dplyr group_by 최빈값과 순위 계산) 2017년 기준의 경기도 내 SSM(Super Super Market) 기업형 슈퍼마켓 현황 데이터 ssm 최빈값은 주어진 데이터에서 가장 많은 개수로 나타나는 값을 뜻한다. R에는 최빈값을 계산해주는 함수(mode)는 따로 없어서 출현 횟수를 계산한 후에 출현 횟수가 최대가 되는 범주값을 찾으면 된다. View(table(ssm$브랜드명)) # 브랜드명 출현 빈도 계산 which.max( )는 전달된 벡터에서 최대값이 되는 벡터의 요소를 반환해준다. which.min( )는 전달된 벡터에서 최소값이 되는 벡터의 요소를 반환해준다. names( )는 전달된 벡터의 벡터 속성 정보를 반환환다. names(which.max(table(ssm$브랜드명))) # 최빈값 dp..
[R-전처리] 데이터 집계 함수(dplyr group_by 그룹별 요약통계) Raw data 상의 데이터 레코드를 좀 더 큰 단위로 변환하여 요약통계를 산출해야하는 일은 데이터 탐색 또는 의사결정에서 중요하다. 2020-03-20 기준, 한국 영화 역대 박스오피스200 데이터 movie 대표값이라고 하면, 서로 다른 데이터 셋을 비교하는데 있어서 비교 가능한 하나의 대표값을 말한다. 주로 평균을 많이 사용하지만 최대, 최소값, 중앙값, 백분위도 많이 사용하는 대표값이다. dplyr 패키지에서 최대값은 max 함수, 최소값은 min 함수, 평균값은 mean 함수, 중앙값은 median 함수, 백분위는 quantile 함수로 구현한다. library(dplyr) movie %>% group_by(대표국적) %>% summarise(max = max(매출액), mi..
[R-전처리] 데이터 집계 함수(dplyr group_by 카운트, 합계 ) 데이터 집계는 데이터베이스(DB) 언어인 SQL에서 대표적으로 많이 사용한다. 집계란, raw data의 레코드 단위를 조금 더 큰 단위로 변환할 때 필요하다. 예를 들면, 날짜별로 역별로 지하철 승하차 인원이 있다고 할 때 역별로 한달 총 승하차 인원 합계를 구한다거나 일 평균 승하차 인원을 계산하려고 할 때 집계 함수가 필요하다. 또 신용카드 결제 데이터도 구매 한 건 한 건 기록된 데이터에서 회원별로 평균 건 당 결제 금액이나 총 결제 금액 합계 등을 계산 할 때 유용하게 사용할 수 있다. 2020-03-20 기준, 한국 영화 역대 박스오피스200 데이터 # data load setwd("C:\\Users\\user\\Desktop\\data") # 파일이 위치한 디렉토리로 세팅..
[R-전처리] 데이터 프레임에서 ID에 기반한 샘플링(랜덤 추출) 서울 6호선 2020.2 역별 승하차 데이터 # data load setwd("C:\\Users\\user\\Desktop\\data") line6 % View() 실습 데이터처럼 사용일자가 2/1~2/29까지 있고 역ID는 날짜별로 들어가 있으니 중복된 역ID가 29번 들어가 있는 샘이다. 이런 데이터는 온라인 쇼핑몰에서 고객 구매데이터에서도 마찬가지이다. 구매 한 건 한 건이 한개의 행을 차지 하기 때문에 고객 ID를 먼저 공정하게 샘플링 한 뒤에 값을 뽑아내야할 필요가 있을 때가 있다. 따라서 먼저 데이터에서 역ID의 중복값을 제거한 값만 얻은 후, 역ID를 샘플링 한 뒤에 데이터를 샘플링할 수 있다. all_id % filter(역ID %in% sa..
[R-전처리] 데이터 프레임에서 조건에 맞는 행 추출(dplyr filter) Raw data에서 특정 조건을 만족하는 레코드(행)만 추출하려고 한다. 서울시 2020년 2월 한 달간 역별 승하차 데이터 # data load setwd("C:\\Users\\user\\Desktop\\data") subway 인덱싱 방식에 데이터명[행 조건, ] 방식으로 추출하는 방법이 있다. View(subway[subway$노선명 == '공항철도 1호선', ]) View(subway[subway$노선명 == '공항철도 1호선' & subway$사용일자 == 20200215, ]) 인덱싱 방식의 추출은 간편하긴 하지만, NA값을 필터링 하지 못한다는 큰 단점이 있다. 또한 모든 행을 다 True/False 방식으로 검사하며 조건에 맞는 행을 찾아내기 때문에 데이터 양이 많아지면..
[R-전처리] 데이터 프레임에서 특정 변수 추출(dplyr select) 데이터를 분석하기 위해 Raw data를 받았을 때 모든 열을 다 변수로 활용하는 것은 아니다. 분석에 사용하지 않는 변수를 제외하고 필요한 열만 추출하면 데이터 분석을 할 때 비용을 절약할 수 있다. 서울시 2020년 2월 한 달간 역별 6호선 승하차 데이터 # data load setwd("C:\\Users\\user\\Desktop\\data") line6 데이터명[행, 열] 인덱싱 방식을 통해 원하는 변수를 추출할 수 있다. 행자리는 비워두면 모든 행이 선택된다. View(line6[, 4:6]) View(line6[, c(4, 6)]) 인덱싱 방식은 동일하나 데이터명[, 열이름] 으로 변수를 추출할 수도 있다. 열 순번을 이용한 방식보다 나중에 ..