1

我在一个文件夹中有几个文件,我想重命名它们,我注意到 R 以字母顺序读取,所以我使用了该命令mixedsort并且它有效,但是当我检查结果时,我发现文件是以不同的顺序读取的,而不是数字. 第一个文件的名称Daily_NPP1.bin 最多为Daily_NPP365.bin

         a<- list.files("C:\\New folder (6)", "*.bin", full.names = TRUE)
         k<- mixedsort(a)#### load package feild
          b <- sprintf("C:carbonflux\\Daily_Rh%d.bin", seq(k))
          file.rename(a, b)

如何强制 R 按数字顺序阅读?

4

2 回答 2

0

这是一种无需重命名文件即可订购矢量的方法:

# Replication of data:
a <- sort(paste0("Daily_NPP",1:365,".bin"))

# Extract numbers and order:
a <- a[order(as.numeric(gsub("[^0-9]","",a)))]
于 2012-09-10T09:47:55.713 回答
0

如果您只想重命名,则可以执行以下操作,而不管排序如何。

b <- sub("^.*?([0-9]+)\\.bin$", "C:\\\\carbonflux\\\\Daily_Rh\\1.bin", a)
file.rename(a, b)

第一个参数sub提取文件名末尾的数字,第二个参数将其粘贴到新的文件名模板中(在 的位置\\1)。所有这些\\\\都是正确转义反斜杠所必需的。

于 2012-09-10T09:18:14.130 回答