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 파일로 저장하기
탐색기에서 저장된 파일을 찾아보았습니다. 잘 저장되었음을 확인했습니다.
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가 뜬다는 점이 매우 인상적입니다.
(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)
왼쪽 출력 결과에서는 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 |
---|
댓글