R 使用名称序列合并多个csv文件

R 使用名称序列合并多个csv文件,r,csv,import,filenames,R,Csv,Import,Filenames,我正在尝试在R中合并700多个csv文件。我能够使用以下代码成功地合并它们: library(dplyr) library(readr) df <- list.files(full.names = TRUE) %>% lapply(read_csv) %>% bind_rows 库(dplyr) 图书馆(readr) df% lapply(读取)%>% 绑定行 现在我的问题是文件名保存为flux.0,flux.1,flux.2……flux.733。R按照flu

我正在尝试在R中合并700多个csv文件。我能够使用以下代码成功地合并它们:

library(dplyr)
library(readr)
df <- list.files(full.names = TRUE) %>% 
  lapply(read_csv) %>% 
  bind_rows 
库(dplyr)
图书馆(readr)
df%
lapply(读取)%>%
绑定行
现在我的问题是文件名保存为flux.0,flux.1,flux.2……flux.733。R按照flux.0、flux.1、flux.10、flux.100、flux.101…等顺序绑定文件。由于文件的顺序对我来说很重要,您能建议将其合并到上述代码中吗?
非常感谢你的帮助

我的管道就是获取所有文件的列表(正如您所做的),将其转换为
tbl
/
data.frame
,然后使用
map
读取文件并
unest()
读取它们。这就是为什么我可以保留加载的每个文件的路径/文件名

require(tidyverse)

df <- list.files(path = "path",
                       full.names = TRUE,
                       recursive = TRUE,
                       pattern = "*.csv") %>% 
tbl_df() %>%
mutate(data = map(value, read.csv)) %>%
arrange(value) %>%
unnest(data) 
require(tidyverse)
df%
tbl_df()%>%
变异(数据=映射(值,read.csv))%>%
排列(值)%>%
unnest(数据)

这里您可以使用自己的方法获得另一个答案。我刚刚添加了一个读取csv的函数,并添加了一个名为“file”的新列,该列的文件名不带扩展名

library(dplyr) 
library(readr) 

df <- list.files(full.names = TRUE) %>% 
    lapply(function(x) {a <- read_csv(x);
                        mutate(a, file = tools::file_path_sans_ext(basename(x)))}) %>%
    bind_rows
库(dplyr)
图书馆(readr)
df%
lapply(函数(x){a%
绑定行

当前行为与您想要的行为有何不同?我想要文件flux.0、flux.1、flux.2…flux.733中的行,而不是flux.0、flux.1、flux.10、flux.100中的行。这是重新组合文件,然后合并它们,这是我不想要的。此外,我无法控制文件的命名,因为这些文件名是自动生成的。谢谢非常感谢代码。这是一个愚蠢的问题。值存储了什么?文件名或csv文件中不同列的值。很高兴我能提供帮助,但很抱歉,必须在那里更清楚。当您将
向量
转换为
tbl_df()
时,默认情况下,列名将为“value”。在这种情况下,它将是路径。此外,我看到您是SO新手。如果您觉得答案解决了您的问题,请单击绿色复选标记将其标记为“已接受”。这有助于将重点放在仍然没有答案的旧SO上。感谢您的澄清。但是,我仍然得到了相同的结果,只是还有另一个c路径名为的列。我尝试在自己的文件上运行CAN。
变量将是您的pathsHey!感谢您的帮助。您的代码有效,但无法解决我的问题。我需要按顺序从合并的文件中提取数据。在当前情况下,我必须以10个为一组进行提取,这同样非常耗时由于我有700多个文件,我可能不太理解。问题是,您需要添加一个表示合并的文件系列的属性。例如,有10个文件,并且希望通过例如块/系列5来标识合并的文件。在这种情况下,您将有一个新列,其标识符为“1to5”和“6to10”,或者是'flux1'和'flux2'还是'flux5'和'flux10'?事实上,我的文件名存储为flux.0 flux.1、flux.2…..flux.733。每个文件有7列和1行。我的目标是将这些文件组合成一个文件,其中包含733行和7列。但诀窍是我希望文件中存储的数据与文件名相同(即在表示特定集合输出的序列中)。我是R的初学者,因此在这方面有很多困难。