본문 바로가기
2. 데이터/2) 데이터 저장하기

R에서 데이터를 txt, csv 로 저장하는 방법

by makhimh 2019. 12. 21.
반응형

R에서 데이터를 txt, csv 로 저장하는 방법


먼저 데이터를 하나 만들어봅시다. 


num=c(1,2,3)

char=c("a","b","c")

log=c(TRUE,TRUE,FALSE)


mydf=data.frame(num,char,log)


> mydf

  num char   log

1   1    a  TRUE

2   2    b  TRUE

3   3    c FALSE


txt 형태로 저장해봅시다. 저장은 working directory에 됩니다. working directory를 확인합시다.


>getwd()

"C:/Users/hi/Documents"


원하는 경로를 working directory로 지정합니다. 


> setwd("C:/Users/Public")


경로가 맞게 지정되었나 확인합니다.


> getwd()

[1] "C:/Users/Public"


이제 txt 형태로 저장해봅시다. write.table 함수를 사용합니다. 


> write.table(mydf,file="mydf.txt")


경로에 가보면 생성이 잘 된것을 확인할 수 있습니다. 






그런데 따옴표가 전부 입력이 되었습니다. 따옴표를 없애려면 quote=FALSE 옵션을 추가해주면 됩니다. 


> write.table(mydf,file="mydf.txt",quote=FALSE)



이번에는 csv형태로 저장해봅시다. 두 가지 방법이 있습니다. write.table 함수에 sep 옵션을 설정해주는 것입니다.


> write.table(mydf,file="mydf.txt",quote=FALSE,sep=",")


 

또는 write.csv 함수를 사용하면됩니다. 


> write.csv(mydf,file="mydf.csv",quote=FALSE)



차이가 있다면, write.csv 의 경우 열 이름에 해당하는 첫번째 줄 num 앞에도 콤마가 찍힙니다. 


이번에는 write.table 옵션을 자세히 알아봅시다. 


write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",

            eol = "\n", na = "NA", dec = ".", row.names = TRUE,

            col.names = TRUE, qmethod = c("escape", "double"),

            fileEncoding = "")


append : 기본값은 TRUE입니다. TRUE로 설정할 경우, 기존 파일 내용 뒤에 내용이 덧붙여집니다. FALSE일 경우 기존 파일 내용을 제거하고 덮어씁니다. 


quote : 기본값은 TRUE입니다. 변수 이름과 문자열에 쌍따옴표를 표시할지 여부를 입력합니다. 


sep : 기본값은 " " 입니다. 데이터와 데이터 사이를 무엇으로 구분할지를 입력합니다. 보통 " " 이나 ","가 사용됩니다. tab으로 구분하고 싶은 경우는 "\t"로 설정해주시면 됩니다. 


eol : 기본값은 "\n"입니다. 개행(enter)를 의미합니다. 행과 행을 어떻게 구분할지를 입력합니다. 


na : 기본값은 "NA"입니다. 결측치를 어떻게 표시할지 입력합니다. 


dec : 기본값은 "." 입니다. 소수점을 어떤 기호로 표시할지 입력합니다. 


row.names : 기본값은 TRUE 입니다. 행의 이름을 메모장에 쓸지 말지 결정합니다.  


col.names : 기본값은 TRUE 입니다. 열의 이름을 메모장에 쓸지 말지 결정합니다.  


fileEncoding : 파일 인코딩 방식을 결정합니다. 


qmethod : 이중인용부호를 어떻게 처리할지 결정. 아직 잘 이해안됨. 


반응형

댓글