2014-09-09 2 views
0

내 목표는 폴더 (C : \ sample)의 각 파일에 코드 세트를 적용한 다음 처리 된 데이터를 다른 폴더 (C : \ cleaned)에 저장하는 것입니다. (! 큰 감사를) 내가 여기에 다른 게시물에서 배운 내 경우에 대한 코드 작성 : 내 현재 코드를 실행하여R for 루프 결과를 다른 폴더에 저장

files <- list.files(path="C:\\sample", pattern="*.CSV", full.names=T, recursive=FALSE) 
datalist <- lapply(files, function(x) { 
t <- read.csv(x, header=T, na.string=c("", "null","NaN"),stringsAsFactors=FALSE) # load file 
t[ , c(4:10)]<- sapply(t[ , c(4:10)], as.numeric) 
t <- t[!is.na(t$Node.1),] 
}) 

for(i in 1:length(files)){ 
write.csv(datalist[[i]] , files[[i]] ,row.names=F) 
} 

을, 결과는 폴더 "\ 샘플 C"의 원본 파일을 대체합니다. 처리 된 각 파일이 다른 폴더 "C : \ cleaned"에 저장되도록 코드를 약간 수정할 수 있습니까?

감사합니다.

답변

0

사용하면 full.names=T을 사용하면 파일 이름에 경로가 추가되므로 수행하는 작업에 불편을 초래할 수 있습니다.

문제를 처리하는 가장 좋은 방법은 당신이 다음 원하는 경로를 추가 할 수 있습니다 작업 디렉토리를

setwd("C:\\sample") 

그런 다음 목록 파일

files <- list.files("C:\\sample", pattern="*.CSV") 

을 설정하는 것입니다

write.csv(datalist[[i]] , paste0("C:\\cleaned\", files[[i]]), 
      row.names=F) 

또는 작업 디렉토리를 변경하고 직접 파일 이름을 사용하십시오.

setwd("C:\\cleaned") 
write.csv(datalist[[i]] , files[[i]], row.names=F) 
+0

감사합니다. 그러나 파일에 오류가 있습니다 (파일, ifelse (추가, "a", "w")) : 연결을 열 수 없습니다 : 경고 메시지 : 파일 (파일, ifelse (추가, "a" , "w")) : 'C : \ cleaned \ C : \ sample/N1_07252014.CSV'파일을 열 수 없습니다 : 잘못된 인수 – Vicki1227

+0

확인을 눌러 내 대답을 수정했습니다. – nico