[패스트캠퍼스 수강 후기] R 인강 100% 환급 챌린지 10차 미션

2020. 8. 19. 00:16카테고리 없음

[패스트캠퍼스 수강 후기] R 인강 100% 환급 챌린지 10차 미션

 

패스트캠퍼스의 강의 중, 프로젝트와 함께 배우는 R 데이터 분석 올인원 패키지 Online를 수강하고 있습니다.

https://bit.ly/2DKMGNx 

내용을 복습도 할 겸, 미션에도 참가할 겸, 블로그에 매일 매일 정리해 보게 되었습니다.

 

오늘은 10회차 미션!

Part 2) [R로 하는 데이터 분석] 데이터 분석 기본기 익히기

Part 3) [R로 하는 데이터 분석] 데이터 다듬어 보기

  1. 12. Ch 05. 데이터 가공하기 - 06. 데이터 합치기

  2. 01. Ch 06. 그래프 그리기 - 01. 변수 간 관계를 표현하는 산점도

 

  1. 12. Ch 05. 데이터 가공하기 - 06. 데이터 합치기

      1. 여러 데이터셋을 하나로 합쳐서 처리해야 함.

      2. 데이터 합치기의 종류

        1. 가로로 합치기 (열 추가)

          1. left_join(A, B, by - "id")

          2. by의 인자는 큰따옴표 필요!

        2. 세로로 합치기

          1. 서로 다른 반의 점수를 합치기 (행 추가)

      3. 데이터 생성

        1. 가로로 합치기

          1. left_join(A, B, by - "id")

          2. id라는 걸 기준으로 합친다. (큰 따옴표를 사용한다는 걸 주의)

          3. 같은 id일 때, 같은 행으로 인식하게끔 하는 것

          4. 즉, 행의 개수가 동일할 필요는 없음

          5. 실제 예시

            1. 주의

              1. left_join, bind_rows는 모두 dplyr 패키지에 포함

            2. 연습 id로 합치기 (중간/기말고사)

              1. test1 <- data.frame(id = c(1, 2, 3, 4, 5), midterm = c(60, 80, 70 ,90, 85))

              2. test2 <- data.frame(id = c(1, 2, 3, 4, 5), finalterm = c(70, 83, 65, 95, 80))

              3. total <- left_join(test1, test2, by = "id")  

            3. 연습2 (exam에 class바다 선생님 추가)

              1. name <-  data.frame(class = c(1, 2, 3, 4, 5), teacher = c("kim", "lee", "park", "choi", "jung"))

              2. total <- exam_new <- left_join(exam, name, by ="class")

        2. 세로로 합치기

          1. 1~5반까지의 데이터와 6~10반까지의 데이터를 합치기

          2. bind_rows(A, B)

            1. 여기는 by를 사용하지 않아 (단순히 붙이는 것이므로)

          3. 실제로 예시

            1. group_a <- test1

            2. group_b <- data.frame(id = c(6, 7, 8, 9, 10), midterm = c(70, 83, 65, 95, 80))

            3. group_all <- bind_rows(group_a, group_b)

            4. group_all

            5.  

            6. install.packages("reshape")

            7. library(reshape)

            8. group_a <- rename(group_a, c(midterm = "test"))

            9. group_a

            10. group_b <- rename(group_b, c(midterm ="test"))

            11. group_b

            12. group_all <- bind_rows(group_a, group_b)

            13. group_all

        3. 연습문제

          1. 연료별 가격 정보 추가 

          2. 주의! stringAsFactors

            1. String을 factor로 바꾸지 말고, 그냥 스트링으로 유지하라는 의미

            2. F로 하지 않으면 범주형변수(factor)로 지정됨  

      4. 연습문제

        1. fuel <- data.frame(fl = c("c", "d", "e", "p", "r"), price_fl = c(2.35, 2.38, 2.11, 2.76, 2.22), stringsAsFactors = F)

        2. fuel

        3. mpg_new <- left_join(mpg, fuel, by = "fl")

        4. head(mpg_new)

        5.  

        6. mpg_new %>%

        7.   select(model, fl, price_fl) %>%

        8.   head(5)

      5. 정리하기

      6. 마무리 문제

        1. 내가 작성한 코드

          1. as.data.frame(midwest) %>%

          2.   mutate(popchild  = (poptotal-popadults), popchildratio = (poptotal-popadults)/poptotal*100 ) %>%

          3.   arrange(desc(popchildratio)) %>%

          4.   mutate(category = ifelse(popchildratio >= 50, "large", ifelse(popchildratio >= 30, "middle", "small"))) %>%

          5. select(county, popchildratio, category) %>%

          6.   head(5)

        2. 문제4는 

          1.  아시아인 인구 백분률을 추가하고 arrange한 후...state, county, 등으로 select해서 처리하면 됨.

        3. as.data.frame을 안해서 한동안 에러를 겪음

        4. mutate내에서 정의한 변수를 곧바로 그 괄호 안에서 사용하는 것은 안됨 (다시 해보니 잘 됨)

      7. 추가 학습

        1. data.frame 내의 변수 이름 변경하기

          1. https://rfriend.tistory.com/41

          2. install.packages("reshape")

          3. library(reshape)

          4. group_a <- rename(group_a, c(midterm = "test"))

          5. 위와 같이 사용

  2. 01. Ch 06. 그래프 그리기 - 01. 변수 간 관계를 표현하는 산점도

    1. 이제는 데이터를 이해하기 위해서 '그래프'를 활용해야 함

    2. R 을 이용해서 그래프를 그려보자

      1. 대부분의 그래프는 표현 가능

        1. 산점도 - 버블차트

        2. 네트워크 표시

        3. 지도 시각화

        4. 3차원 데이터 표현

        5. 모션 차트 (시시각각 변화하는 데이터)

        6. 클릭 등에 따라 변화하는 차트도 가능

      2. 일많이 쓰는 것

        1. 산점도, 막대 그래프, 시간 그래프, 상자그림

        1. 위의 4가지가 가장 많이 사용되는 그래프

          1. 강사는 BoxPlot을 강조!

            1. 일단은 이것부터 그려봐라!

      3. 산점도 - 변수 간 관계 표현하기

        1. ggplot2의 레이어 구조.

        2. 산점도

          1. x, y가 연속된 그래프에 사용

            1. 나이와 소득의 관계 등

          2. 써보자

            1. library(ggplot2)

            2. 1단계: 배경 설정.

              1. ggplot(data = mpg, aes(x = displ, y = hwy))

                1. aes라는 함수는 축을 결정

            3. 2단계: 그래프 추가

              1. ggplot(data = mpg, aes(x = displ, y = hwy))+geom_point()

              2. **dplyr는 %>%를 즐겨 썼는데, ggplot은 + 를 사용한다.

                1. 마찬가지로 +에서 엔터쳐서 줄바꿈하는 것도 가능

            4. 3단계: 축 범위 제한

              1. ggplot(data = mpg, aes(x = displ, y = hwy))+geom_point()+xlim(3,6)

              2. xlim은 축의 범위 설정 (x limit이라는 의미)

            5. 3단계 더 추가.. ylim (줄 바꿔가며 표현 가능>>  + 다음에 엔터)

              1. ggplot(data = mpg, aes(x = displ, y = hwy))+

              2.   geom_point()+

              3.   xlim(3,6)+

              4.   ylim(10, 30)

          3. qplot vs. ggplot 

            1. qplot: quick plot

              1. 간단하게 빨리 그려볼 때 사용

              2. 상세하게 그려볼 때는 ggplot사용

          4. 연습

            1. 코드

              1. ggplot(data=mpg, aes(x=cty, y=hwy)) +

              2.   geom_point()

              3.  

              4. ggplot(data=midwest, aes(x=poptotal, y=popasian)) +

              5.   geom_point() +

              6.   xlim(0, 500000) +

              7.   ylim(0, 10000)

 

이제 그래프를 그리기 시작하니 본격적으로 데이터 분석을 시작한 느낌!