일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ggplot2
- r
- 기계학습
- 프로그래머스
- 한국전자통신연구원
- ML
- 머신러닝
- 웹크롤링
- 빅분기
- python
- KT AIVLE
- dx
- 딥러닝
- 에이블스쿨
- SQLD
- 에트리 인턴
- 가나다영
- 시각화
- ETRI
- 하둡
- kaggle
- KT 에이블스쿨
- 한국전자통신연구원 인턴
- 서평
- 지도학습
- arima
- 소셜네트워크분석
- 시계열
- 빅데이터분석기사
- Eda
- cnn
- 하계인턴
- 다변량분석
- httr
- 에이블러
- SQL
- kt aivle school
- Ai
- matplot
- hadoop
Archives
- Today
- Total
소품집
[Kaggle] 올림픽 데이터를 활용한 EDA 본문
728x90
dplyr 패키지 연습 겸 EDA 연습 겸
getwd()
setwd('/Users/dayeong/Desktop/reserch/data')
library(dplyr)
library(ggplot2)
# 0. Data load 및 이전 시험 진행과정
athlete <- read.csv('athlete_events.csv')
Region <- read.csv('noc_regions.csv')
athlete <- athlete %>% select(-ID)
Region <- Region %>% select(-notes)
athlete$Medal <- as.character(athlete$Medal)
athlete$Medal[is.na(athlete$Medal)] <- 'None'
athlete$Medal <- factor(athlete$Medal, levels = c('Gold', 'Siver', 'Bronze','None'))
# Na 결측치 제거
athlete <- na.omit(athlete)
Region <- na.omit(Region)
# 1. ahtlete Data set에 Region data set left join
Total <- athlete %>% left_join(Region, by='NOC') # NOC를 기준으로 조인 시행
head(Total)
# 2. 겨울에 열린 경기에서 금메달의 비율 구하기
# Step1. Medal이 None값을 제외하고 year와 medal 별로 개수 출력
survey <- Total %>%
filter(Medal != "None") %>%
group_by( Year , Medal) %>%
summarise(n = n())
head(survey)
# Step2. 위의 결과물을 활용해 Year별로 Medal의 총 개수와 비율 변수 생성
survey2 <- survey %>%
mutate(sum_ = sum(n), ration = n/sum_)
# Step3. 위에 나온 결과물을 통해 medal이 gold이면서 season이 winter인 것만 출력
sel <- Total %>% filter(Season == "Winter") %>% arrange(Year)
winter_ <- unique(sel$Year)
survey3 <- survey2 %>% filter(Medal == "Gold" & Year %in% winter_)
head(survey3)
# 3. 특정조건을 만족하는 팀 뽑기
# Step1. Team 별로 평균 Height가 180 초과이고 평균 weight이 80 이상인 팀 보이기
# - 평균 height별로 내림차순
# - 앞에서 5개만 출력
survey <- Total %>%
group_by(Team) %>%
summarise(mean_height = mean(Height), mean_weight = mean(Weight)) %>%
filter(mean_height>=180 , mean_weight >=80) %>%
arrange(desc(mean_height))
head(survey)
# Step2. 위의 나온 결과물을 활용해 해당하는 team만 뽑고,
# Team별로 가장 키가 큰 사람과 가장 작은 사람의 키, 두 키의 차이를 출력
team <- survey$Team
survey2 <- Total %>%
filter(Team %in% team) %>%
group_by(Team) %>%
summarise(max_hei = max(Height), min_hei = min(Height),
dif = max(Height)- min(Height))
head(survey2)
# Step3. 위의 결과물을 활용하여 다음과 같은 처리 진행.
# - team별로 가장 키가 큰 사람과 가장 작은 사람의 차이가 30이상 나는 팀만 뽑기
# - 차이나는 정도에 따라 내림차순으로 정렬
# - 팀의 문자열의 수가 10이상인 팀들만 뽑기
survey3 <- survey2 %>%
mutate(team_length = nchar(as.character(Team))) %>%
filter(dif>=30 & dif >=10) %>%
arrange(desc(dif))
# 4. Sport와 Sex별로 가장 많은 금메달을 뽑은 사람을 한 명씩 뽑기
# Step1. Medal이 None인 사람은 제외하고 sport와 name별로 medal의 개수 카운트
survey <- Total %>%
filter(Medal!= 'None') %>%
group_by(Sport, Sex) %>%
mutate(medal_n=n())
head(survey)
# Step2. 위의 결과를 활용하여 Sport와 Sex별로 가장 많은 medal을 얻은 사람을 정렬
survey2 <- survey %>%
group_by(Sport, Sex) %>%
arrange(desc(medal_n)) %>%
select(Sport, Sex, medal_n)
head(survey2)
# Step3. 위의 결과를 활용하여 Sport와 Sex별로 정렬했을 시 가장 첫번째 열만 뽑기
survey3 <- survey2 %>%
filter(row_number() == 1L) %>%
arrange(Sport, Sex)
728x90
'AI' 카테고리의 다른 글
[Kaggle] 도로교통공단 기초 카운트 시각화 (0) | 2020.09.20 |
---|---|
[Kaggle] Japan Restaurant Visitor Forecasting EDA with R (1) | 2020.09.10 |
[Kaggle] avocado price EDA (0) | 2020.09.08 |
[Kaggle] BlackFriday 데이터를 활용한 EDA (5) (0) | 2020.09.04 |
[Kaggle] 채무 불이행자 (0) | 2020.09.01 |
Comments