我使用max(list.files(path, "my_files_v"))
来读取最新的my_files_v版本。
该目录包含以下文件:
my_files_v1,my_files_v2,... my_files_v9
我的代码似乎工作得非常好,因为脚本在最高版本的my_file_v中读取,直到我来到版本_v10。从那时起,max(list.files(..))始终将_v9视为最大值,因此跳过_v10和_v11等。
一种解决方案是使用substr或类似的东西从字符串中提取版本号,但是有更好的方法吗?如果没有,有没有人知道如何从字符串中提取该模式,因为我对此非常差
答案 0 :(得分:1)
您可以使用:
max(as.integer(gsub('my_files_v', '', list.files(path, "my_files_v")))
假设您的文件没有像您所示的扩展名。但是,因此它们在我的文件浏览器中正确排序,我通常将文件命名为零填充。在R中,您可以使用sprintf
:
sprintf('%03d', 1:10)
为了它的价值,要提取文件名的数字部分,你可以使用正则表达式和分组:
gsub('my_files_v([0-9]+)\\.Rdata', '\\1', list.files(path, 'my_files_v'))