Basic Objects - Dataframe
Page content
공지
본 Tutorial은 강사에게 강의를 듣는 과거-현재-미래 학생들을 위해 작성하였습니다.
이 글을 읽어주시는 분들에게 작은 도움이 되기를 바랍니다.
I. DataFrame의 개요
본 포스트는 프로그래밍과 R을 처음 배우는 사람을 위해 작성하였습니다. 짧게 읽어두시기를 바랍니다. 공부하실 때는 복잡하게 생각하지는 마시기를 바랍니다. 영어의 기본단어 및 문법을 배우듯이 그냥 받아들이시기를 바랍니다.
데이터프레임은 서로 다른 성질의 벡터가 모여 있는 집합이라고 할 수 있다.1
(1) 데이터프레임 생성
이제 데이터프레임을 만들어보자. 어려운 것은 아니니 쉽게 따라 올 수 있을 것이다.
- 우선 아래와 순서로 코드 작성하면 된다.
vector
생성data.frame()
생성
이름 <- c("홍길동", "심청이", "김길동", "성춘향")
나이 <- c(30, 20, 34, 50)
지각 <- c(TRUE, FALSE, FALSE, FALSE)
data.frame(이름 = 이름,
나이 = 나이,
지각 = 지각)
## 이름 나이 지각
## 1 홍길동 30 TRUE
## 2 심청이 20 FALSE
## 3 김길동 34 FALSE
## 4 성춘향 50 FALSE
(2) stringsAsFactors = FALSE
-
이 기능은 2006년에
data.frame()
&read.table()
함수에 처음 적용이 되었다. -
R.4.0.0 버전이 2020년 4월 24일 배포된 이후에,
stringsAsFactors = FALSE
의 기능은 사라지게 되었다. -
이 기능이 하는 주요 역할은
string
데이터를factor
로 자동 변환을 해주는 기능이 있었는데, 자동 변환 해주는 것이 사라졌다.
II. 데이터 내보내기
- 이제 데이터를 내보내기를 하겠다. 만들어진 데이터를 내보내는 방법은 크게 3가지가 있다.
- 또한 이 영역은 주로
File IO
와 연관이 있는데, 결국 실무에서는Database
연결이 되며, 이 부분은 사실 매우 중요하면서 큰 영역이기에 추후에 따로 기술하도록 한다. - 이번 포스트에서 간단하게
csv
파일,엑셀
파일로 내보내기를 수행한다. '
방법 1. csv
csv
으로 내보내기 할 때는 대표적으로write.csv()
함수를 사용한다.- 우선, 데이터프레임 객체를 만든 후, csv 파일에 저장한다.
temp <- data.frame(이름 = 이름,
나이 = 나이,
지각 = 지각)
write.csv(x = temp, file = "data/temp.csv")
- 우선
temp
라는 데이터 객체를 만든다. write.csv()
함수를 활용하는데,x
는 데이터의 객체를 의미하고,file
은 저장할 파일의 경로를 의미한다.- 이 때, 확장자명을
.csv
꼭 명시해주셔야 합니다.
방법 2. 엑셀
- 이제 엑셀로 내보내기를 수행한다.
# install.packages("writexl")
writexl::write_xlsx(x = temp, path = "data/temp.xlsx")
- 엑셀로 내보내는 것은 별도의 패키지를 설치해야 한다.
install.packages("writexl")
을 실행해서 패키지를 설치합니다.write_xlsx()
함수 안에 있는, 인수는write.csv()
함수와 동일하다.
III. 파일 불러오기
- 이제 파일을 불러온다. 파일을 불러올 때는
read
계열로 호출하면 된다.
temp <- read.csv("data/temp.csv")
temp2 <- readxl::read_xlsx("data/temp.xlsx", sheet = 1)
csv
파일을 불러올 때는read.csv()
함수를 사용한다..xlsx
파일을 불러올 때는readxl
패키지 안에 있는read_xlsx()
함수를 사용한다.
VI. 자주하는 실수 핸들링
- 그러나, 입문자들에게 위 함수를 바로 써서 성공하는 경우는 거의 없다.
- 아래 에러문구를 확인한다.
temp2 <- readxl::read_xlsx("data/temp.xlsx", sheet = 1)
Error: `path` does not exist: ‘data/temp.xlsx’
- 위 에러가 의미하는 것은 무엇일까? 경로 에러입니다.
- 경로는 어떻게 수정해야 할까요?
getwd()
를 실행하여 먼저 현재 경로를 확인한다.
> getwd()
[1]"/your/current/directory"
setwd()
함수안에 경로를 지정한다.
> setwd('/my/new/directory')
[1]"/my/new/directory"
경로 에러시 위와 같이 경로를 재지정하면 파일을 불러올 수 있다.
V. Reference
Chapman, C., & Feit, E. M. D. (2015). R for marketing research and analytics. Cham: Springer.
-
벡터에 관한 설명이 필요하다면, Basic Objects - Vector에서 확인하기를 바란다. ↩︎