2016-08-31 3 views
0

데이터 프레임을 만들고 파일 이름과 함께 다음 코드를 사용하여 추가 csv 파일을 읽습니다.파일 이름을 추가하지 않으면 'rbind'와 'lapply'가 제대로 작동합니다.

wd <- "Working directory" 
file_list <- list.files(wd) 

### Function: read data ### 
read_data <- function(file){ 
    d <- read.csv(paste(wd,file,sep=""), stringsAsFactors = FALSE, strip.white = TRUE, na.strings = c("NA","")); # read in every file in the working directory 
    d$FileName <- substr(file,20,29); # append part of file name 
    d # return the dataframe 
} 

### Call rbind: merge data ### 
df <- do.call(rbind, lapply(file_list,read_data)) 

그러나이 오류가 달려 온다 : 내가 잘못 뭐하는 거지

Error in `$<-.data.frame`(`*tmp*`, "FileName", value = "2016010209") : 
    replacement has 1 row, data has 0 

?

건배

+3

"2016010209"에 해당하는 파일에 헤더 만 있고 데이터가 없을 수 있습니까? – Roland

+2

'print_' 또는'message' 문을'read_data' 함수에 추가하여 어떤 파일이 문제를 일으키는 지 먼저 찾아보십시오. 실제로 예상되는 형식의 파일을 검사하십시오. –

+0

IMHO'setwd (wd)'작업 디렉토리를 설정하는 것이 더 좋습니다. 이 경우 일부 부분에서 스크립트를 변경해야합니다. – jogo

답변

0

항상 데이터를 확인하십시오! 파일이 손상되어 비어 있습니다! 도움 주셔서 감사합니다.