외부에 있는 엑셀과 csv 파일 불러오기, 데이터를 csv파일로 저장하기
엑셀파일을 읽기위한 패키지(함수)를 설치하면 된다. 명령어는 다음과 같다.
install.packages("readxl")
library(readxl)
엑셀파일은 다음 명령어로 읽을 수 있다.
read_excel("파일명.xlsx", sheet = 1, col_names = T)
df_midterm <- read_excel("df_midterm.xlsx", sheet = 1, col_names = T)
> df_midterm
# A tibble: 4 x 3
science math class
<dbl> <dbl> <dbl>
1 100 80 1
2 90 60 1
3 20 40 2
4 70 100 2
#sheet 파라미터는 '엑셀의 몇 번 시트를 가져올지' 지정한다. 값은 1/2/3 혹은 "시트명"을 입력하면 된다.
#col_names 파라미터는 데이터를 불러올 때 '칼럼 이름까지 가져올 것인지'를 지정한다. T(TRUE)는 그대로 가져오는 것, yes라는 뜻이다. 만약 F(FALSE)로 쓰면 column의 이름은 순서대로 ...1, ...2, ...3, ...4, ...... 로 잡히고 원래의 변수들은 1행으로 잡혀 행(case)이 하나 더 늘어난다. 변수명이 없고 바로 데이터값이 들어가는 경우에는 F를 쓴다.
col_names값이 F일 때는 어떻게 나오는지 비교해보자.
df_midterm <- read_excel("df_midterm", sheet = 1, col_names = F)
...1 ...2 ...3
<chr> <chr> <chr>
1 science math class
2 100 80 1
3 90 60 1
4 20 40 2
5 70 100 2
column이름이 ...1, ...2, ...3으로 잡혔고 우리가 의도하는 column은 1행에 들어왔다. 이럴 경우 추가적인 전처리를 해줘야 한다.
> mean(df_midterm$science)
[1] 70
> mean(df_midterm$math)
[1] 70
CSV란 Comma Seperate Value의 준말로, 데이터가 콤마로 구분되며 어떤 툴에서든 읽히는 범용 데이터파일의 확장자다. 동일한 데이터 양이면 엑셀보다 CSV파일이 용량이 더 적고 R에서 불러일으키는 속도가 더 빠르다.
엑셀과 달리 CSV를 읽을 때는 패키지를 설치하지 않아도 되며 R에 자체적 함수가 내장되어 있다.
read.csv("csv_exam.csv", header= T)
CSV에는 시트라는 개념이 없기 때문에, sheet 파라미터를 쓰지 않는다. col_names 대신 header라는 파라미터를 쓰는데, 의미는 동일하다.
csv_exam <- read.csv("csv_exam.csv", header = T)
write.csv(df_finalexam, file = "output_newdata.csv")
df_finalexam이라는 변수를 output_newdata라는 이름의 csv 파일로 프로젝트 폴더에 저장한다는 뜻이다.