ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • R 데이터 프레임 (Data Frame) / 엑셀, csv 데이터 불러오기 / 데이터 저장하기 / RData (.rda) 파일
    머신러닝 with R 2019. 7. 1. 15:21

    [데이터 프레임 이란?]

     

    데이터 프레임(data.frame)은 R에서 가장 많이 쓰이는 데이터 구조이다. 

    데이터 프레임은 행과 열을 가지는 표 형식으로 숫자나 문자 상관없이 다양한 형식의 데이터를 담을 수 있다.

     

    이름 영어점수 수학점수
    김지훈 90 50 1
    이유진 80 60 1
    박동현 60 100 2
    김민지 70 20 2

    위 데이터를 입력해 데이터 프레임을 만들어 본 후 결과를 확인해 보자.

    데이터 프레임을 만드는 함수는 data.frame( ) 이다.

    데이터 프레임을 변수에 할당할 때에는 df_ 를 사용하여 명시해주면 구분이 쉽다.

    데이터 프레임은 따로 패키지를 다운로드하거나 로드하지 않아도 기본적으로 사용할 수 있다.

     

    english <- c(90, 80, 60, 70)	#영어 점수 변수 생성
    
    math <- c(50,60, 100, 20)	#수학 점수 변수 생성
    
    df_midterm <- data.frame(english, math)	#데이터프레임 생성하여 df_midterm에 할당
    df_midterm
    
    calss <- c(1, 1, 2, 2)
    
    df_midterm <- data.frame(english, math, class)
    df_midterm
    
    mean(df_midterm$english)	#df_midterm의 english로 평균 산출
    mean(df_midterm$math)	#df_midterm의 math로 평균 산출

     

     

     

     

    데이터 프레임은 english, math처럼 따로 변수를 만들어서 사용 가능하지만, 한 번에 만들 수도 있다.

     

    df_midterm <- data.frame(english = c(90, 80, 60,70), math = c(50, 60, 100, 20), class = c(1,1,2,2))
    df_midterm
    

     

    이처럼 한번에 데이터 프레임을 만들게 되면, 코드가 길어지긴 하지만 각각의 values가 생성되지 않을 수 있다.

     

     

    [데이터 불러오기]

     

    R은 엑셀이나 csv 파일 등 외부 데이터를 불러 올 수도 있다. 

    엑셀 파일을 불러오기 위해서는 readxl이라는 패키지를 다운로드하여야 한다.

    readxl을 설치 후, 다음의 "excel_exam"이라는 파일을 불러오자.

    엑셀 파일을 불러 오기 위해서는 read_excel("파일명")이라는 함수를 사용한다.

     

     

     

    install.packages("readxl")
    library(readxl)
    
    df_exam <- read_excel("excel_exam.xlsx")
    df_exam

     

    우선, 엑셀 파일을 불러오기 위해서는 r이 설치되어 있는 기본 폴더(working derectory)에 해당 파일이 존재해야 한다.

    그 폴더를 알기 위해서는 getwd()라는 함수를 사용하면 된다.

    그러면 "C:/Users/yebin/OneDrive/문서" 이런 식으로 경로를 알려준다. 이 폴더에 excel_exam이라는 파일이 있는지 확인하고, 마지막에. xlsx라는 파일의 형식까지 써주고 실행시켜 본다.

     

     

    만약, 기본 폴더가 아니라 다른 폴더에 불러오고자 하는 파일이 있다면 해당 경로를 직접 입력하여 파일을 불러올 수 있다. 

    뿐만 아니라, 엑셀 파일의 형식이 조금씩 다를 수 있다. 예를 들어 엑셀 파일의 첫 번째 행이 변수명이 아니라면,

    col_names = F를 추가해서 컴퓨터가 표를 이해할 수 있도록 해야 한다. (F = false의 의미로 '없다' 정도로 해석...)

     

    df_exam_novar <- read_excel("excel_exam_novar.xlsx", col_names = F)
    df_exam_novar
    

     

    또한, 엑셀 파일에 시트가 여러 개 있는데, 세 번째 시트에 있는 표를 불러오고 싶다면?

    sheet = 3을 추가해서 3번째 시트라는 것을 알려준다. (시트의 이름을 써줘도 된다. 대신 정! 확! 히)

     

    df_exam_sheet <- read_excel("excel_exam_sheet.xlsx", sheet = 3)
    df_exam_sheet

     

     

     

    데이터는 엑셀뿐만 아니라 csv 파일 형식으로 많이 존재하는데, csv는 범용 데이터 형식으로 쉼표(,)로 구분된 텍스트 파일이다. 용량이 엑셀보다 적으며 다양한 소프트웨어에서 사용한다.

    csv를 불러올 때에는 read.csv("파일명")라는 함수를 사용한다. 

    문자가 들어있는 파일을 불러올 때에는 stringAsFactores = F를 추가시킨다.

     

    df_csv_exam <- read.csv("csv_exam.csv")
    df_csv_exam
    
    df_csv_exam <- read.csv("csv_exam.csv", stringAsFactors = F)

     

     

    [데이터 저장하기]

     

    데이터 프레임을 csv 파일로 저장해보자.

    csv 형식으로 데이터를 저장할 때에는 write.csv(데이터 프레임 변수, file = "저장 할 파일 이름")을 쓰면 된다.

     

    df_midterm <-data.frame(english = c(90, 80, 60, 70),
                            math = c(50, 60, 100,20),
                            class = c(1,1,2,2))
                            
    df_midterm
    
    wwrite.csv(df_midterm, file = "df_midterm.csv")

     

    그러면 해당 데이터 프레임이 df_midterm이라는 이름과 csv 형식으로 저장된 것을 볼 수 있다.

     

     

    [RData 파일]

     

    또한 R에는 R 전용 데이터 파일이 있는데 . rda라는 파일 형식이다. 이 파일은 용량이 적고 빠르며, 파일을 불러올 때에 할당 없이 바로 활용할 수 있다.

     

    데이터 프레임을 RData 파일로 저장하고 불러오기를 해보면 다음과 같은 결과를 얻을 수 있다.

     

    save(df_midterm, file = "df_midterm.rda")
    
    rm(df_midterm)
    
    df_midterm
    
    load("df_midterm.rda")
    
    df_midterm
    

     

     

     

    엑셀과 CSV 파일을 불러올 때는 파일을 불러와 새 변수에 할당해서 활용해야 하는 반면, 

    rda 파일은 불러오면 저장한 데이터 프레임이 자동으로 생성되어 할당 없이 바로 활용 가능하다.

     

    df_exam <- read_excel("excel_exam.xlsx")
    
    df_csv_exam <- read.csv("csv_exam.csv")
    
    load("df_midterm.rda")
    
    
    반응형

    댓글

Designed by Tistory.