0
다른 코드로 몇 시간 동안 실험 한 후에 도움을 요청합니다. 다섯 개의 하위 폴더가있는 폴더가 있습니다. 각 하위 폴더에는 세 개의 CSV 파일이 있습니다. 나는 각 하위 폴더에있는 세 개의 CSV 파일을 묶어서 동일한 하위 폴더에 결과를 출력하고 각 하위 폴더에 대해 동일한 작업을 수행하려고합니다. 따라서 원본 15 개의 CSV 파일 외에 5 개의 하위 폴더에 5 개의 파일이 결합됩니다. 도와 주셔서 감사합니다. 다음 코드 줄을 함께 넣었지만 성공하지 못했습니다.CSV 파일을 바인딩하고 결과를 동일한 하위 폴더 및 루프로 출력
#Folder containing sub-folders
parent.folder <- "path"
# Sub-folders
sub.folders <- list.dirs(parent.folder, recursive=TRUE)[-1]
# List files in all subfolders
files <- sapply(sub.folders, list.files, all.files = F, full.names = T, recursive=TRUE)
# Make a list of lists
mydata <- lapply(files, function(x) read.csv(x, header = T)[,14:17]) #list of lists, each has 4 variables
for (r in 1:length(mydata)){
fileatt <- paste("path","new_file",r,".csv",sep="")
write.table(mydata[r],fileatt, row.name=F, col.name=c("a","b","c","d"), quote=F,sep=",")
}
코드가 훌륭합니다. Roman Lustrik에게 감사드립니다. csv 파일을 읽고 cbind를 사용하여 파일을 가로로 바인딩하기 위해 약간 수정했습니다. rbind 대신 cbind를 사용할 때 해결해야 할 두 가지 문제가 있습니다. (1) 열 이름 앞에 파일 경로 이름이 붙습니다. (2) 하위 폴더의 각 파일에서 특정 열 [, 14 : 17] 만 가져옵니다. 다시 한 번 감사드립니다! – abenol