提问人:Kieran 提问时间:8/25/2023 更新时间:8/25/2023 访问量:25
使用 list.files() 加载多个 csv 文件的顺序问题
Issue with order of loading multiple csv files using list.files()
问:
我正在尝试加载一长串csv文件,名称spec_cap1,spec_cap2...,spec_cap77。在我的目录中,它们的顺序正确。我目前正在尝试使用
files <- list.files(pattern = "*.csv")
files
combined_files <- bind_rows(lapply(files, fread))
combined_files
当我这样做时,我得到了文件,但它们是无序的 - R 读取 spec_cap1,然后是 spec_cap10、spec_cap11等,然后是 spec_cap2、spec_cap21。
我尝试使用以下方法指定确切的文件:
files <- list.files(pattern = "spec_cap[1-77].csv")
files
combined_files <- bind_rows(lapply(files, fread))
combined_files
但我遇到了同样的问题。任何帮助都非常感谢!
答:
2赞
LMc
8/25/2023
#1
首先对文件名进行排序,然后将其读入:
files <- c("spec_cap1", "spec_cap10", "spec_cap11", "spec_cap2", "spec_cap21")
files <- stringr::str_sort(files, numeric = TRUE)
# [1] "spec_cap1" "spec_cap2" "spec_cap10" "spec_cap11" "spec_cap21"
str_sort
在以下情况下,从包中将对数值而不是字符串值进行排序stringr
numeric = TRUE
评论
combined_files <- readr::read_csv(files, id = "path")