R - 以正确的顺序重命名目录中的文件
R - renaming files in directory in the correct order
我使用 RSelenium
将包含我需要的数据的多个 (125) 电子表格从网页下载到目录。该网站生成的文件始终命名为 "report",因此下载的文件名范围从 "report (1)" 到 "report (124)"。
我有一个字符向量,其中包含我希望使用 'file.rename' 重命名的文件的名称。但是,虽然文件按照文件夹中下载的顺序显示(我使用的是 Windows 10 FYI),但当我使用 list.files
时,它会按以下顺序提供给我(结果缩写为 first 25;我手动将第一个文件重命名为"areport.xls"放在第一位)。
[1] "areport.xls" "report (1).xls" "report (10).xls" "report (11).xls" "report (12).xls" "report (13).xls" "report (14).xls"
[8] "report (15).xls" "report (16).xls" "report (17).xls" "report (18).xls" "report (19).xls" "report (2).xls" "report (20).xls"
[15] "report (21).xls" "report (22).xls" "report (23).xls" "report (24).xls" "report (3).xls" "report (4).xls" "report (5).xls"
[22] "report (6).xls" "report (7).xls" "report (8).xls" "report (9).xls"
顺序似乎没有韵律或原因(我想是因为文件名是作为字符串读入的?)。我需要一种方法来以正确的顺序读取文件名,以便为它们赋予正确的新名称。
有什么建议吗?
知道 gtools 库中有一个函数确实是唯一需要的解释:
> library(gtools)
> x <- scan(what="")
1: "areport.xls" "report (1).xls" "report (10).xls" "report (11).xls" "report (12).xls" "report (13).xls" "report (14).xls"
8: "report (15).xls" "report (16).xls" "report (17).xls" "report (18).xls" "report (19).xls" "report (2).xls" "report (20).xls"
15: "report (21).xls" "report (22).xls" "report (23).xls" "report (24).xls" "report (3).xls" "report (4).xls" "report (5).xls"
22: "report (6).xls" "report (7).xls" "report (8).xls" "report (9).xls"
26:
Read 25 items
> ?mixedsort
> mixedsort(x)
[1] "areport.xls" "report (1).xls" "report (2).xls" "report (3).xls" "report (4).xls" "report (5).xls" "report (6).xls"
[8] "report (7).xls" "report (8).xls" "report (9).xls" "report (10).xls" "report (11).xls" "report (12).xls" "report (13).xls"
[15] "report (14).xls" "report (15).xls" "report (16).xls" "report (17).xls" "report (18).xls" "report (19).xls" "report (20).xls"
[22] "report (21).xls" "report (22).xls" "report (23).xls" "report (24).xls"
我使用 RSelenium
将包含我需要的数据的多个 (125) 电子表格从网页下载到目录。该网站生成的文件始终命名为 "report",因此下载的文件名范围从 "report (1)" 到 "report (124)"。
我有一个字符向量,其中包含我希望使用 'file.rename' 重命名的文件的名称。但是,虽然文件按照文件夹中下载的顺序显示(我使用的是 Windows 10 FYI),但当我使用 list.files
时,它会按以下顺序提供给我(结果缩写为 first 25;我手动将第一个文件重命名为"areport.xls"放在第一位)。
[1] "areport.xls" "report (1).xls" "report (10).xls" "report (11).xls" "report (12).xls" "report (13).xls" "report (14).xls"
[8] "report (15).xls" "report (16).xls" "report (17).xls" "report (18).xls" "report (19).xls" "report (2).xls" "report (20).xls"
[15] "report (21).xls" "report (22).xls" "report (23).xls" "report (24).xls" "report (3).xls" "report (4).xls" "report (5).xls"
[22] "report (6).xls" "report (7).xls" "report (8).xls" "report (9).xls"
顺序似乎没有韵律或原因(我想是因为文件名是作为字符串读入的?)。我需要一种方法来以正确的顺序读取文件名,以便为它们赋予正确的新名称。
有什么建议吗?
知道 gtools 库中有一个函数确实是唯一需要的解释:
> library(gtools)
> x <- scan(what="")
1: "areport.xls" "report (1).xls" "report (10).xls" "report (11).xls" "report (12).xls" "report (13).xls" "report (14).xls"
8: "report (15).xls" "report (16).xls" "report (17).xls" "report (18).xls" "report (19).xls" "report (2).xls" "report (20).xls"
15: "report (21).xls" "report (22).xls" "report (23).xls" "report (24).xls" "report (3).xls" "report (4).xls" "report (5).xls"
22: "report (6).xls" "report (7).xls" "report (8).xls" "report (9).xls"
26:
Read 25 items
> ?mixedsort
> mixedsort(x)
[1] "areport.xls" "report (1).xls" "report (2).xls" "report (3).xls" "report (4).xls" "report (5).xls" "report (6).xls"
[8] "report (7).xls" "report (8).xls" "report (9).xls" "report (10).xls" "report (11).xls" "report (12).xls" "report (13).xls"
[15] "report (14).xls" "report (15).xls" "report (16).xls" "report (17).xls" "report (18).xls" "report (19).xls" "report (20).xls"
[22] "report (21).xls" "report (22).xls" "report (23).xls" "report (24).xls"