You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按文件名特征对加载的CSV文件列表排序

问题:按文件名的自然顺序重新排序R中的文件路径列表

相关代码及数据集可在我的GitHub仓库获取。我用以下代码将20个独立CSV数据集加载到R中:

# 这两行代码生成数据集文件夹中所有文件名的字符列表
directory_paths <- "~/GMU folders (local)/DAEN_698/other datasets/sample obs(20 csvs)"
filepaths_list <- list.files(path = directory_paths, full.names = TRUE, recursive = TRUE)

> head(filepaths_list, 4)
[1] "C:/Users/Spencer/Documents/GMU folders (local)/DAEN_698/other datasets/sample obs(20 csvs)/0-3-1-1.csv" 
[2] "C:/Users/Spencer/Documents/GMU folders (local)/DAEN_698/other datasets/sample obs(20 csvs)/0-3-1-10.csv"
[3] "C:/Users/Spencer/Documents/GMU folders (local)/DAEN_698/other datasets/sample obs(20 csvs)/0-3-1-11.csv"
[4] "C:/Users/Spencer/Documents/GMU folders (local)/DAEN_698/other datasets/sample obs(20 csvs)/0-3-1-12.csv"

但实际文件夹中的CSV文件是按自然顺序排列的——比如0-3-1-1、0-3-1-2...0-3-1-9、0-3-1-10这样的顺序,而当前生成的filepaths_list排序混乱,是按文件名第四个部分的单个字符排序的,导致1之后直接是10而非2。我需要将其重新排序为文件夹中的自然顺序。

我之前尝试了以下代码,但修改这个名称列表无法同步调整实际的文件路径列表:

# 格式化每个CSV数据集的名称
DS_names_list <- basename(filepaths_list)
DS_names_list <- tools::file_path_sans_ext(DS_names_list)

> DS_names_list
 [1] "0-3-1-1"  "0-3-1-10" "0-3-1-11" "0-3-1-12" "0-3-1-13" "0-3-1-14" "0-3-1-15" "0-3-1-16"
 [9] "0-3-1-17" "0-3-1-18" "0-3-1-19" "0-3-1-2"  "0-3-1-20" "0-3-1-3"  "0-3-1-4"  "0-3-1-5" 
[17] "0-3-1-6"  "0-3-1-7"  "0-3-1-8"  "0-3-1-9"

补充说明:文件名中的每个数字对应回归模型的属性:

  • n1:所有回归变量间的多重共线性程度(取值为0、0.4或1)
  • n2:底层结构模型中的真实回归变量数量
  • n3:真实模型的误差方差
  • n4:具备前三个特征的数据集的随机变体编号,范围为1-500

解决方案

要实现自然排序,有两种简单可行的方法:

方法1:使用gtools包的mixedsort函数

# 安装并加载gtools包
install.packages("gtools")
library(gtools)

# 对文件路径列表进行自然排序
sorted_filepaths <- mixedsort(filepaths_list)

# 验证排序结果
head(sorted_filepaths, 4)

方法2:使用stringr包的str_sort函数

# 安装并加载stringr包
install.packages("stringr")
library(stringr)

# 设置numeric=TRUE参数实现自然排序
sorted_filepaths <- str_sort(filepaths_list, numeric = TRUE)

# 验证排序结果
head(sorted_filepaths, 4)

两种方法都能让filepaths_list按照文件名的自然顺序排列,和文件夹中的排序一致。


内容的提问来源于stack exchange,提问作者Marlen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:01:10