[英]How to import specific files from a large list in R
我正在嘗試從具有2,000多個大文件的文件夾中僅導入357個特定的csv文件。 我有一個單獨的列表,稱為“名稱”,僅包含我要分析的357個文件:
names$list_id = paste(list_id, 'csv', sep = '.')
names <- as.list(names)
現在名稱看起來像這樣:987.123.456.csv,987.123.457.csv ....
我知道如何一次導入所有文件,並使用代碼將它們組合成一個文件:
filelist = list.files(pattern = "*.csv")
datalist = lapply(filelist, function(x)read.table(x, h=T))
D = do.call("rbind", datalist)
但是我不想導入所有2,000多個巨型文件。 是否可以使用循環將我想要的名稱列表中的選擇文件讀入R中?
我希望只有一個文件,其中包含我已經過濾和選擇的357個文件中的所有數據。 感謝您的時間。
嘗試這項工作。
我假設您位於所有文件所在的文件夾中,並且只想導入文件1.csv,10.csv,20.csv和40.csv
library(dplyr)
selected_files_to_import <- paste(c(1,10, 20, 40), ".csv", sep = "")
list_of_data_frame <- lapply(selected_files_to_import, function(x){
read.csv(x, stringsAsFactors = F)
})
aggregated_df <- bind_rows(list_of_data_frame)
另一個解決方案可能是
library(purrr)
selected_files_to_import <- paste(c(1,10, 20, 40), ".csv", sep = "")
aggregated_df <- map_df(selected_files_to_import,
~ read.csv(., stringsAsFactors = F))
selected_files_to_import是帶有文件名的向量。 您可以用已經擁有的列表替換這部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.