본문 바로가기

나 어제 배웠다/R Studio

데이터 가공 - 전처리

# 데이터 가공 - 전처리

# 조건에 맞는 데이터만 추출하기

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