我在一個文件夾中有多個文件。他們都有相同的佈局,我已經提取了他們想要的信息。循環播放一組標準化文件以收集信息並將其保存在不同的文件中
因此,現在,對於每個文件,我想寫一個.csv文件並將其命名爲原始輸入文件,並向其中添加「_output」。
但是,我不想爲每個文件手動重複此過程。我想循環它們。我在網上尋找幫助,發現了很多很棒的提示,其中包括很多內容。
這裏是我的嘗試:
#Set directory
dir = setwd("D:/FRhData/elb") #set directory
filelist = list.files(dir) #save file names into filelist
myfile = matrix()
#Read files into R
for (i in 1:length(filelist)){
myfile[i] = readLines(filelist[i])
*code with all calculations*
write.csv(x = finalDF, file = paste (filename[i] ,"_output. csv")
}
不幸的是,它沒有發揮出來。下面是錯誤消息我得到:
錯誤as.character(X): 不能強迫式「封閉」類型爲「字符」
另外的載體:警告消息: 在MYFILE [ I] < - readlines方法(文件清單:[I]): 數項替換的是不替換長度的倍數
和「report2016-03.txt」是所述第一文件中的代碼應的名稱執行。
有誰知道我應該怎麼做來糾正這個錯誤 - 或者您可以預見的其他任何可能的錯誤?
非常感謝。
============================================== ======================== 下面是一些我使用的資源:
https://www.r-bloggers.com/looping-through-files/
How to iterate over file names in a R script?
How to loop through a folder of CSV files in R
「;」的目的是什麼?分隔符爲文件名? – cumin
@cumin,謝謝你指出。這是一個錯字。這不是代碼的一部分。 –
爲什麼使用'readLines'而不是'read.table'或'read.csv'或(個人推薦)'data.table :: fread'有什麼特別的理由? –