# 데이터 가공 - 전처리
# 조건에 맞는 데이터만 추출하기
library(dplyr)
exam <- read.csv("d:/easy_r/sample_data/score.csv", stringsAsFactors = F)
exam
# exam에서 1학년만 추출, ==, !=, &(and), |(or)
exam %>% filter(학년!=1)
# 영어 점수 50점 이상 추출
exam %>% filter(영어 >= 50)
# 이름 추출
exam %>% filter(이름 == '홍길동1')
# 중복조건
exam %>% filter(수학 >= 20 & 수학 <= 60)
# 필요한 변수 추출하기
exam %>% select(이름, 학년, 수학)
# 필요없는 변수 버리기
exam %>% select(-영어,-과학)
# 조건, 변수 조합 데이터 추출
# 1학년 수학 점수 추출
exam %>%
filter(학년 == 3) %>%
select(수학) %>%
head
# 정렬
exam %>% arrange(학년, desc(수학))
# 파생변수 추가하기
exam_2 <- exam %>% mutate(합계=수학+영어+과학, 평균=(수학+영어+과학)/3)
exam_2 %>% arrange(desc(평균)) %>% head(1)
# 조건 파생변수 추가하기
exam_2 %>% mutate(과락=ifelse(평균 >= 60, "통과", "과락")) %>% filter(과락 == "과락")
# 집단별로 요약하기
# 학년별 수학 평균 구하기
exam_2 %>%
group_by(학년) %>%
summarise(수학평균=mean(수학),
수학합계=sum(수학),
수학중앙값=median(수학),
학생수=n())
# 데이터 합치기
# 가로합치기=>변수생성
# 세로합치기=>데이터생성
# 중간시험 생성
test_1 <- data.frame(id=c(1,2,3,4,5),
midterm=c(60,80,70,90,85))
# 기말시험 생성
test_2 <- data.frame(id=c(1,2,3,4,5),
final=c(70,83,65,95,80))
# id를 기준으로 가로합치기
total <- left_join(test_1, test_2, by="id")
total
# 학년별 담임 생성
teach <- data.frame(학년=c(1,2,3,4),
이름=c("김","이","박","최"))
teach
exam_new <- left_join(exam_2, teach, by="학년")
exam_new
# 1차시험 생성
group_1 <- data.frame(id=c(1,2,3,4,5),
score=c(60,80,70,90,85))
# 2차 시험 생성
group_2 <- data.frame(id=c(6,7,8,9,10),
score=c(70,83,65,95,80))
# 세로합치
group_all <- bind_rows(group_1, group_2)
group_all
'나 어제 배웠다 > R Studio' 카테고리의 다른 글
파생변수 만들기 (0) | 2018.05.04 |
---|---|
변수명(컬럼) 바꾸기 (0) | 2018.05.04 |
데이터 분석 기본 함수 (0) | 2018.05.04 |
RData 파일 저장 불러오기 (0) | 2018.05.03 |
외부데이터 이용하기 - CSV (0) | 2018.05.03 |