ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [R]_28일차_06.01
    프로그래밍/R 2021. 6. 2. 08:38

    본 내용은 '2021년 혁신성장 청년인재 집중양성 사업'의 ‘인공지능 개발자 양성 과정’ 강좌를 수강하면서 강의 및 강의노트를 참고하여 작성한 내용입니다.


    공공데이터 포털

    Kaggle: Your Machine Learning and Data Science Community

    R Tutorial

    R이란?

    • 데이터를 분석하는 데 사용되는 소프트웨어 (범용 분석 툴)
    • R의 데이터 타입 : 벡터(변수)

    R의 약점

    • 파이썬을 점점 더 많이 사용하고 있는 상황
    • 웹 프로그래밍이 불가능 ↔ 파이썬 (Flask, Django)
    • 딥러닝 (파이썬과 비교되는 상황)
    • 발전속도가 정체되고 있는 상황
    • 컴파일 과정이 없다 (장점이자 단점)
    • 버전의 영향을 많이 받는다 (버전에 따라 프로그램이 동작이 안될 수 있다)
      • 패키지의 의존성 때문에 문제가 발생할 수 있기 때문(ex. 패키지 실행 불가능)

    R의 장점

    • 무료 (오픈소스)
    • 여러 회사에서 사용
    • 하둡 안에 R이 내장되어 있다
    • 강력한 시각화 기능
    • 정말 많은 패키지

    R의 활용

    • 통계 분석
    • 머신러닝 모델링
      • 되긴 되지만 사용하지 않는다 (더 좋은게 있기 때문 ex) 파이썬의 Tensorflow 등등)
    • 텍스트 마이닝
    • 소셜 네트워크 분석
    • 지도 시각화
    • 주식 분석
    • 이미지 분석
    • 사운드 분석
    • 웹 애플리케이션 개발
      • 거의 사용하지 않는다 (파이썬의 Flask, Django가 있기 때문)
      • Flask, Django에서는 MVC 패턴 구현 가능

    파이썬 - R

    • 파이썬 : 인터프리터 언어
    • R : 인터프리터 언어

    인터프리터 방식 vs 컴파일러 방식 비교

    02-1 R과 R 스튜디오 설치하기

    ※ 설치 순서

    • R GUI를 먼저 깔고 → R Studio를 설치해야 한다

    R설치 방법

    • R 3.6.2 버전 설치 (mybox-실습SW)
    • R Studio에서 소스가 실행되지 않을 때 사용

    R Stduio 설치

    • (mybox-실습SW)

    R Stduio Cloud 연동 (본인은 구글 계정으로 연동)

    • 업로드 속도가 느리다
    • 지원 메모리 용량 : 1GB

    CH02_R 데이터 분석 환경 만들기

    4개의 화면

    • 콘솔 창 : 명령어 실행
    • 소스 창 : 명령어 기록
    • 환경 창 : 생성한 데이터를 보여준다
    • 파일 창 : 폴더에 있는 파일을 보여준다

    R Stduio 주요 단축키

    Soft-wrap 자동 줄바꿈 옵션 설정하기

    • Tools → Global Options → Soft-wrap R source files 항목 체크

    c() 함수 : 변수에 여러 개의 값을 넣는 기능

    seq() 함수 : 변수에 여러 개의 값을 넣는 기능 (괄호 안에 시작 숫자와 마지막 숫자를 쉼표로 구분)

    by 파라미터 : 일정한 간격을 두고 연속된 숫자로 된 변수 생성 가능

    숫자를 다루는 함수

    • mean()
    • max()
    • min()

    문자를 다루는 함수

    • paste() : 여러 문자를 합쳐 하나로 만드는 함수
      • collapse(옵션) = "," : 문자들을 쉼표로 구분

    함수란? : 특정한 기능을 가지고 있는 상자

    패키지란 ? : 함수 꾸러미

    패키지 설치하기 (ggplot2)

    • install.packages() (패키지 이름의 앞뒤에 반드시 따옴표 입력!)

    Help 함수

    • ?함수명 : 함수의 메뉴얼이 나타난다

    class() 함수

    typeof() 함수

    • 식별자의 자료형을 알려준다

    ls() 함수

    • 현재 지정된 변수 목록 반환

    mode, class, typeof 함수의 차이

    실습 예제

    # ggplot2
    install.packages("ggplot2")
    
    # ggplot2 패키지 로드
    library(ggplot2)
    
    x <- c("a", "a", "b", "c")
    x
    # 빈도 막대 그래프 출력
    qplot(x)
    
    test <- c(80, 60, 70, 50, 90)
    test
    
    mean(test)
    
    test2 <- mean(test)
    test2

    CH04_데이터 프레임의 세계로!


    데이터 프레임이란?

    • 행과 열로 구성된 사각형 모양의 표 형태

    열 == 속성, 컬럼, 변수(벡터)!

    행 == 정보, Case !!

    한 명에 대한 데이터는 가로 한 줄에 나열된다

    데이터가 크다 = 행이 많다 or 열이 많다

    데이터가 크다

    • 행이 많다 → 컴퓨터가 느려진다 → 고사양 장비의 구축 필요 (데이터의 양)
    • 열이 많다 → 분석 방법의 한계 → 고급 분석 방법이 필요 (데이터의 다양성)

    빅데이터는 중요한가?

    • 데이터가 아무리 많더라도 다양한 변수를 담고 있지 않으면 변수들 간의 관련성을 분석할 수 없기 때문에 의미 있는 정보를 찾아낼 수 없다
    • → '빅' 데이터가 아니라 '다양한; 데이터가 중요
    • → 즉, 행 보다는 열이 중요!

    데이터 프레임 만들기

    엑셀 파일 불러오기

    • readxl 패키지 설치하기
    • read_excel("aaa.xlsx") 함수 사용
    install.package("readxl")
    library(readxl)
    
    # 현재 폴더에 있는 엑셀 파일
    x <- read_excel("aaa.xlsx")
    
    # 다른 폴더에 있는 엑셀 파일
    x <- read_excel("d:/aa/bb/cc.xlsx")
    
    mean(x$english)

    엑셀 파일 첫 번째 행이 변수명이 아니라면?

    • col_names = F 옵션 사용! (열 이름을 가져올 것인가? → False)
    • → 첫 번째 행을 변수명이 아닌 데이터로 인식해 불러오고, 변수명은 '...숫자'로 자동 지정된다

    엑셀 파일에 시트가 여러 개 있다면?

    • sheet = xx 옵션 사용!

    CSV 파일 불러오기

    • CSV 파일이란?
      • Comma-Seperated Values : 쉼표로 구분되어 있는 형태
    • read.csv() 내장 함수 사용

    CSV 파일 첫 번째 행이 변수명이 아니라면?

    • header = F 옵션 사용!
    • → 첫 번째 행을 변수명이 아닌 데이터로 인식해 불러오고, 변수명은 '...숫자'로 자동 지정된다

    문자가 들어 있는 파일을 불러올 때

    • stringAsFactors = F 옵션 사용!

    데이터 프레임을 CSV 파일로 저장하기

    데이터 프레임 만들기

    CSV 파일로 저장하기

    RDS 파일 활용하기

    • RDS 파일이란?
      • R 전용 데이터 파일
      • 다른 파일들에 비해 R에서 읽고 쓰는 속도가 빠르고 용량이 작다는 장점

    정리

    var1 <- c(1, 2, 3, 4, 5)
    var2 <- c(3, 4, 5, 6, 7)
    print(var1 + var2)  # 4, 6, 8, 10, 12
    
    # 변수 만들기, 데이터 프레임 만들기
    english <- c(90, 80, 60, 70) # 영어 점수 변수 생성
    math <- c(50, 60, 100, 20) # 수학 점수 변수 생성
    
    data.frame(english, math) # 데이터 프레임 생성
    
    # 외부 데이터 이용하기
    
    # 엑셀 파일
    library(readxl) # 패키지 로드
    df_exam <- read_excel("excel_exam.xlsx") # 파일 불러오기
    
    # CSV 파일
    df_csv_exam <- read.csv("csv_exam.csv") # 파일 불러오기
    write.csv(df_midterm, file="df_midtern.csv") # 파일 저장하기
    
    # RDA 파일
    load("df_midterm.rda") #  파일 불러오기
    save(df_midterm, file="df_midterm.rda")  # 파일 저장하기

    CH05_데이터 분석 기초! (데이터 파악, 다루기 쉽게 수정)


    데이터를 파악할 때 사용하는 함수

    • head()
    • tail()
    • View() : 뷰어 창에서 데이터 확인 (첫 글자가 대문자)
    • dim() : 데이터 차원 출력
      • 데이터가 몇 행, 몇 열로 구성되어 있는지 확인
    • str() : 데이터 속성 출력
    • summary() : 요약 통계량 출력

    summary() 요약 통계량 의미

    변수명 바꾸기

    • dplyr 패키지 : 데이터를 원하는 형태로 가공할 때 사용하는 패키지
    • rename() 함수

    파생변수 만들기

    • 파생 변수란?
      • 기존의 변수를 변형해 만든 변수

    변수 조합해 파생변수 만들기

    mpg 통합 연비 변수 만들기

    조건문을 활용해 파생변수 만들기

    중첩 조건문 활용하기

    정리

    # 데이터 준비, 패키지 준비
    mpg <- as.data.frame(ggplot2::mpg) # 데이터 불러오기
    library(dplyr) # dplyr 패키지 로드
    library(ggplot2) # ggplot2 패키지 로드
    
    # 데이터 파악
    head(mpg)
    tail(mpg)
    View(mpg) #  Raw 데이터 뷰어 창에서 확인
    dim(mpg) #  차원
    str(mpg) #  속성
    summary(mpg) # 요약 통계량
    
    # 변수명 수정
    mpg <- rename(mpg, company=manufacturer)
    
    # 파생변수 생성
    mpg$total <- (mpg$cty + mpg$hwy) / 2    #  변수 조합
    mpg$test <- ifelse(mpg$total >= 20, "pass", "fail")   #  조건문 활용
    
    # 빈도 확인
    table(mpg$test) # 빈도표 출력
    qplot(mpg$test) # 막대 그래프 생성

    CH06_자유자재로 데이터 가공하기


    1. 데이터 전처리 - 원하는 형태로 데이터 가공하기
    2. 조건에 맞는 데이터만 추출하기
    3. 필요한 변수만 추출하기
    4. 순서대로 정렬하기
    5. 파생변수 추가하기
    6. 집단별로 요약하기
    7. 데이터 합치기

    dplyr 패키지의 함수

    06-2_조건에 맞는 데이터만 추출하기

    %>% 기호

    • 연결하는 기호
    # exam을 출력하되 
    
    exam %>% filter(class = 2) # 2반인 경우만 추출
    
    exam %>% select(math) # math 추출
    
    exam %>% filter(class == 1) %>% select(english) # class가 1인 행만 추출한 다음 english 추출

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

    초과, 미만, 이상, 이하 조건 걸기

    여러 조건을 충족하는 행 추출하기

    여러 조건 중 하나 이상 충족하는 행 추출하기

    목록에 해당하는 행 추출하기

    연산자 종류

    06-3_필요한 변수만 추출하기

    • 변수 추출하기
    • dplyr 함수 조합하기

    06-4_순서대로 정렬하기

    • 오름차순으로 정렬하기
      • arrange()
    • 내림차순으로 정렬하기
      • arrange(desc(xxxx))

    06-5_파생변수 추가하기

    • 파생변수 추가하기
      • mutate()

    etc


    코딩테스트 준비 (강의 교안-이것이 취업을 위한 코딩 테스트다 with 파이썬 강의교안 참고)

    "돈에 물드는 순간 순수성은 사라진다" (ex. 마크 주커버그)

    설치 후 사용하는 시대가 점점 저물고 있다 (점점 클라우드 형태로 사용하는 형태)

    Reference


    [파이썬 코딩] 컴파일러와 인터프리터의 차이점

    모두의 R 데이터 분석: 10 주요 단축키

    [R코딩] mode,class,typeof 함수의 차이

    R 연산자

    댓글

Designed by Tistory.