r - R list.files()中的自然排序顺序(人类排序顺序)

标签 r natural-sort

有没有一种简单的方法可以按自然顺序(也就是人工顺序)对文件进行排序,即file9.csv在file10.csv之前? list.files()似乎没有排序顺序的选项。

其他语言(例如here)有很多实现,而Rosetta Code仅具有C,Perl,Python等解决方案。

最佳答案

“人类排序”是一种疯子的错觉,仅在假设的AI系统上可用,但仅在具有适当的上下文知识时可用。

为此,您应该使用一些快速的正则表达式从文件名中提取元数据并使用它们对文件进行排序:

files<-c("file9.txt","file10.txt");
as.numeric(gsub('^file([0123456789]*)\\.txt$','\\1',files))->fileNum;
files[order(fileNum)]

关于r - R list.files()中的自然排序顺序(人类排序顺序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496325/

相关文章:

Rmarkdown : different output folders, 共享库

api - 使用 R 通过 API 访问 google docs 修订历史记录?

r - 在 Windows 8 上将 R 模型转换为 PMML 是否有大小限制?

r - 计算熵

mysql - mysql中的字母数字列自然排序,其中数据是字母、数字、特殊字符的任意组合

Roxygen2 跳过 .Rd 生成

algorithm - 对字符串中的数字进行 "natural"排序的最简单方法?

python - 基于子列表中的字母数字字符串的列表列表的自然排序?

sorting - 如何按降序/升序对 “uniq -c”进行自然排序输出? -Unix

sql - 按字母数字排序