我有一个关于 list.files()
函数的简单问题 . 我有一个文件夹,其中包含以这种方式命名的文件列表:
DF2.txt DF3.txt DF4.txt DF5.txt ....... .......
当我粘贴以下字符串时,
files <- list.files(pattern = ".txt")
向量按此顺序返回值:
“DF10.txt”“DF11.txt”“DF12.txt”........ ........“DF2.txt”“DF20.txt”“DF21.txt”...... ...... .........“DF3.txt”“DF30.txt”“DF31.txt”.......... ..........
等等 . 我想按文件夹中出现的数字递增顺序列出文件 . 为什么R在 list.files()
之后更改文件夹中文件的顺序?如何重新排列这些文件以匹配原始顺序?
4 回答
就计算机而言,它正在正确排序 . 但是,您可以使用"gtools"包中的
mixedsort
来获取所需的排序类型:以您的示例,这意味着您可以:
用户功能很有趣
由于编写小实用程序函数很容易,你也可以写一个像这样的小函数:
然后,比较:
数字按字母顺序排序 . 对于基础R方法,您可以执行以下操作:
或者,如果您希望保持在非异地边界内,则可以使用原始正则表达式 .
这是自然排序与字母排序问题 . 对我来说,名为naturalsort的软件包最适合以人类可读的方式显示文件名 .