| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- str()
- querydsl적용하기
- 자바
- RProgramming
- queryDSL
- 머신러닝
- R프로그래밍
- 이클립스
- Q타입클래스
- 머신러닝프로세스
- summary()
- Spring
- programmers
- git오류
- LIKE검색
- Rstudio
- core.autocrlf
- java
- r
- JPA
- git
- 한글깨지는문제
- R명령어
- 이중배열
- 알고리즘
- 프로그래머스
- Eclipse
- DTO사용이유
- cor()
- stepfilter
- Today
- Total
놀고 싶어요
[R Programming] 데이터 분석 / 데이터 전처리 - pivot_table, gather, spread 본문

이동거리가 0인 대여 건이 있다.
이동거리 0인 대여의 평균 대여 시간은 27.5이고 최대값은 214로 조회된다.
-> 빌리고 타지 않고 반납했거나 기기가 정확히 작동하지 않은 경우
이동거리가 0인 데이터는 통계와 분석에 적합하지 않다고 판단하여 분석 대상에서 제외한다.
bike_data2 <- bike_data2[bike_data2$Distance != 0,]
이동거리가 0이 아닌 케이스를 찾아서 자기 자신(bike_data2)에 다시 입력해준다.

Pivot과 같은 방식으로 데이터를 정리하는 방법
데이터 요약
Age_Group별, Membership_type별로 데이터 재구성


spread(summarise(group_by(bike_data2, Age_Group, Membership_type), sum = sum(Distance)), Membership_type, sum)
pivot_table <- bike_data2 %>%
group_by(Age_Group, Membership_type) %>%
summarise(sum = sum(Distance)) %>%
spread(Membership_type, sum)
파이프 형식으로 작성하는 게 좀 더 자연스러운 흐름을 보여준다.
group by로 테이블 전체를 재구성 한 다음 summarise 함수로 각 그룹의 이동거리를 합계 계산하고 이 결과 테이블을 spread 함수로 행 구분은 연령대(Age_Group), 열 구분은 회원권 타입(Membership_type)으로 최종 재구성하는 방식
wide form 과 long form
wide form
데이터를 특정 기준으로 요약해서 옆으로 길게 나열하는 데이터
long form
테이블을 아래로 길게 표현한 데이터. gather()함수를 이용한다.


좌측 이미지: gather() 결과
연령대(Age_Group) 별, 회원권 타입(Membership_type)별 이동거리의 합계로 28개의 행 3개의 컬럼 데이터
이 테이블을 전으로 되돌릴 때 사용하는 함수는 spread()이다.
우측 이미지: spread() 결과
연령대(Age_Group) 별로 행 구분, 회원권 타입(Membership_type)으로 열 구분
각 셀의 이동거리의 합계 값. 7개의 행, 5개의 컬럼 데이터
spread와 gather 함수는 base 패키지에 속하지 않는다.
tidyverse의 하위 패키지에 속해 있다.
R의 함수 는 입력촤 출력 데이터 형식이 매우 중요하고 까다롭다.
어떤 결과를 얻는 방법에는 여러가지가 있을 수 있다.
어떤 것은 좀 더 간결하고 어떤 것은 좀더 복잡해 보인다.
사용하고 있는 함수가 어떤 값을 입력, 출력 받는가에 정해진다.
어떤 패키지 형식을 사용하는지, 어떤 패키지를 선호하는지에 따라 많이 좌우된다.

argument is not numeric or logical: returning NA
인자가 수치형 또는 논리형이 아니므로 NA를 반환한다.
mean(bike_data2[bike_data2$Distance==0,])
괄호안의 반환될 값은 tibble이므로 수치형이 아니라 사용이 불가능하다.
mean(bike_data2[bike_data2$Distance==0, "Duration"])
특정컬럼 Duration에 대한 평균값을 구하라는 명령 또한 괄호 속 값이 tibble이라 불가능하다.
mean(bike_data2$Duration[bike_data2$Distance==0])
'R' 카테고리의 다른 글
| [R Programming] R에서의 정규분포 / 중심극한정리 (0) | 2021.05.14 |
|---|---|
| [R Programming] 파이프연산자 %>% (0) | 2021.05.12 |
| [R Programming] ggplot2를 이용한 기본 그래프 그리기 - 파이차트, 막대그래프, 히스토그램, Box Plot, 선 그래프 (0) | 2021.05.12 |
| [R Programming] 데이터 결합 (0) | 2021.05.10 |
| [R Programming] 데이터 전처리 / 결측값 및 이상값 처리 (0) | 2021.05.09 |