본문 바로가기
R

R을 알아보자 (1) : 데이터 프레임(Data Frame), 가장 많이 사용하는 데이터 형태

by 춘춘주모 2019. 8. 5.
반응형

2019-08-05 (월) 

 1. 데이터 프레임이란? 

 데이터 프레임(Data Frame)은 가장 많이 사용하는 데이터 형입니다. 엑셀의 스프레드시트의 외형과 비슷하다고 봐도 됩니다. 기본적으로 행렬의 형태를 취하고 있습니다. 

이름(열1) 나이(열2) 성별(열3) 학점(열4)
김가렌(1행) 23 2.9 
현티모(2행) 25 3.5
김아리(3행)  21 3.7

 개인에 대한 정보를 담고 있는 예시 데이터 프레임을 만들어 보았습니다. (한 행, 한 행에 대한 의미를 강조하기 위해 1행부터 시작했습니다.)

열(column)은 속성(attribute)을 담고 있습니다. 속성에 따라 이름(문자), 나이(숫자), 성별(범주형) 등의 다른 데이터를 받고 있음을 볼 수 있습니다. 

행(row)은 개인에 대한 정보를 담고 있습니다. 가로줄 한 줄, 한 줄이 각각 개인을 가리키고 있음을 알 수 있습니다. 행은 케이스 혹은 레코드라고 불리는 경우도 있습니다. 

 

2. R에서 데이터 프레임 만들고 저장하기 

위의 예시 데이터 프레임을 R에서 직접 만들어 보면서 익히도록 하겠습니다. 

#데이터 프레임 만들기(1) : 하나씩 넣기 
name <- c('김가렌','현티모','김아리')
age <- c(23,25,21)
sex <- c("M","M","F")
credit <- c(2.9, 3.5, 3.7)

df_info <- data.frame(name, age, sex, credit)
df_info 

 각각의 열에 정보를 정의하고, 데이터 프레임으로 묶어보았습니다. 그리고 출력했을 때, 다음과 같은 결과를 확인할 수 있습니다.  

 

데이터 프레임 만들기 

한 번에 넣는 방법으로도 수행해 보았습니다. 똑같은 결과를 확인할 수 있었습니다. 

#한 번에 넣기 
df_info2 <- data.frame(name = c('김가렌','현티모','김아리'),
                      age = c(23,25,21),
                      sex = c("M","M","F"),
                      credit = c(2.9, 3.5, 3.7))
df_info2

만든 데이터 프레임 저장하기

저장하는 함수 write.csv를 이용하면 간단하게 저장할 수 있고, 파일 이름을 정해주면 됩니다. 

write.csv(df_info, file = "df_info.csv") #해당 df를 csv 파일로 저장하기 

탐색기에서 저장된 파일을 찾아보았습니다. 잘 저장되었음을 확인했습니다.

생성된 csv 파일 

3. 데이터 프레임 분석하기 

 간단한 데이터 프레임이 생성되었습니다. 해당 데이터를 분석해 보겠습니다. 

mean(df_info$age)
mean(df_info$credit) # $를 이용해서 데이터프레임의 하위 속성에 접

 

통계치 

간단한 통계치를 출력했습니다. $를 통해 데이터 프레임 내부의 변수를 지정한다는 점이 인상적입니다. 

 

 

4. 외부 데이터 가져오기 

 Github에서 예시 데이터를 가져왔습니다. 이 데이터를 import 해 보도록 하겠습니다.(해당 데이터가 필요하신 분은 댓글에 메일 주소를 남겨주시면 보내드리겠습니다.) 

* working directory를 세팅하기 위해 절대 경로를 지정했습니다. 

* 필요한 패키지를 받았습니다.(readxl)

(1) 불러오기 

getwd()
setwd("C:\\Users\\user\\R-project\\RStudy\\8-1-MyTest") #현재 작업 경로 지정

install.packages("readxl") #패키지 설치 
library(readxl) #패키지 불러오기 

df_exam <- read_excel("excel_exam.xlsx") #data import 
View(df_exam)

UI에서 직접 불러오는 방법도 있습니다. 노란색으로 표시한 곳의 파일을 클릭하면 Import Dataset을 선택하면 왼쪽 창이 뜨는데 바로 불러오고, Import Option도 설정할 수 있습니다. 바로 불러 오고, Code Preview가 뜬다는 점이 매우 인상적입니다. 

UI에서 불러오는 방법 

(2) 불러오기 옵션 

1. 첫 열 인덱스 지정 옵션 

만약 컬럼칼럼 이름이 없는 시트의 경우 기본 옵션으로 불러오게 된다면 1번째 행이 칼럼 이름으로 지정되기 때문에 유실됩니다. 그래서 그런 경우에는 col_names = F 옵션을 채택하여 그대로 Import 될 수 있도록 해야 합니다. 

#컬럼 이름에 대한 옵션 
df_exam_novar <- read_excel("excel_exam_novar.xlsx") #그냥 불러오기 
View(df_exam_novar)
df_exam_novar <- read_excel("excel_exam_novar.xlsx", col_names = F) #컬럼 이름은 안불러오기 
View(df_exam_novar)

컬럼 이름이 없는 시트 
(좌) 그냥 불렀을 때 (우) col_names = F 

왼쪽 출력 결과에서는 1개의 행이 부족한데, 아까 말했듯이 한 개의 행이 칼럼 이름으로 들어갔기 때문입니다. 이런 데이터의 경우에는 오른쪽과 같이 될 수 있도록 옵션을 추가로 코딩해야 합니다. 

 

2. 해당 파일에 시트가 여러 개인 경우 

시트가 여러개인 경우에는 시트 번호를 코딩해야 합니다. 아래와 같이 코딩하면 됩니다. 아주 쉽고 직관적입니다. 

#~번째 시트 가져오기 
df_exam <- read_excel("excel_exam.xlsx", sheet = 2)
df_exam2 <- read_excel("excel_exam.xlsx", sheet = 3)
View(df_exam) 
View(df_exam2)

 

3. CSV 파일을 불러올 때 

문자가 들어있는 CSV 파일을 불러올 때는 이 옵션을 F로 설정해야, 문자 타입으로 인식하기 때문에 오류가 없습니다. 

#csv 파일 불러오기 
df_csv_exam <- read.csv("csv_exam.csv")
df_csv_exam
df_csv_exam <- read.csv("csv_exam.csv", stringsAsFactors = F) #문자가 들어 있는 파일을 불러올 때 옵션 

 

반응형

'R ' 카테고리의 다른 글

R을 알아보자 (2) : R 벡터, 행렬 알아보기  (0) 2019.08.05

댓글