有没有一种简单的方法可以按自然顺序(也就是人工顺序)对文件进行排序,即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/