본문 바로가기
R프로그래밍

R프로그래밍 - 폴더 안에 여러 csv파일들 하나로 불러 들이기 list.files 함수

by 미스터탁 2020. 6. 24.

이번에는 하나의 폴더안에 있는 여러 csv파일들을 R로 불려들여서 하나로 합쳐보는 코드를 작성해보겠습니다.

 

 

우선 임의의 폴더안에 여러개의 csv파일들을 복사해서 붙여넣었습니다.

 

 

 

R이 익숙치 않으신 분들은 이전 포스팅들을 참고해주세요

 

 

https://bluediary8.tistory.com/84

 

R프로그래밍 - 코드로 폴더 생성하기 dir.create 함수

내가 원하는 폴더안에 새로운 폴더를 만들고 그곳에 csv파일을 저장해보도록 하겠습니다. 물론, 마우로 폴더내에서 수동으로 새폴더를 만들 수 있지만, 작업을 하다보면, 여러개의 폴더를 자동��

bluediary8.tistory.com

 

 

R에서 working directory를 setting하고 list.files()라는 함수를 통해  폴더 안에 있는 csv파일들을 받아 올 수 있습니다.

 

 

 

setwd("D:\\R\\new\\1")  ## Working directory setting 
list.files() ## file list

 

list.files() 함수를 통해 받아온 파일명들을 새로운 변수 file_list 에 넣도록 하겠습니다.

 

 

 

file_list<-list.files() ## file list 
file_list

 

이제 여기 데이터들을 read.csv함수를 통해 불러들이고 for문을 통해서 합쳐주도록 하겠습니다.

 

 

 

 

여기서 for문을 사용하는데에 조금 어려울 수 있습니다.

하지만 crawling이나 기타 코딩 할때에 굉장히 자주쓰는 테크닉 이기 때문에 꼭 

이해하고 넘어가시는게 좋습니다.

아래 for문에 대해 공부하실때에는 i가1일때에 final이라는 변수에 어떤게 들어가고

i가 2일때 final이라는 변수에 어떤게 들어가는지 생각해보시는게 좋습니다.

 

 

 

 

 

final<-NULL ## 빈 변수 (NULL) 선언 
for(i in 1:length(file_list)){ ## file_list의 1번째방부터 6번째(길이)까지    
  file<-read.csv(file_list[i]) ## file_list의 i번째 방에 있는 csv 파일 read 
  final<-rbind(final,file)  
  ## i가 1일 때 : 빈 값과 1번째 csv rbind -> 1번째 csv 
  ## i가 2일 때 : 1번째 csv와 2번째 csv rbind -> 1번째+2번째 csv 
  ## i가 3일 때 : (1번째+2번째 csv)와 세번째 csv rbind -> 1번째+2번째+3번째 csv 
  cat("\n",i) 
}

 

 

 

for문이 돌아간 이후에 final변수의 dimension과 head()함수를 통해 확인해보면 데이터가 잘 합쳐졌다라는 것을 알 수 있습니다.

 

 

dim(final) 
head(final)

 

 

 

인프런에서 R강의/딥러닝 강의를 업로드 하고 있습니다.

https://www.inflearn.com/roadmaps/225

 

[입문~활용] 데이터 분석가 되기 with R | 더 나은 학습을 위한 가이드

기초부터 실전까지,R로 시작하는데이터 분석의 세계! 고객 분석, 트렌드·브랜드 분석, 데이터 저널리즘까지... 사물인터넷(IoT)과 빅데이터, 인공지능(AI)과 같은 기술이 주목을 받기 시작하면서 �

www.inflearn.com

 

반응형

댓글