簡體   English   中英

如何從R中的大列表導入特定文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM