我有几个数据文件,我需要按特定顺序处理它们。文件名称的模式是,例如"Ad_10170_75_79.txt"
.
目前它们是根据第一个数字(长度不同)排序的,见下文:
f <- as.matrix (list.files())
f
[1] "Ad_10170_75_79.txt" "Ad_10345_76_79.txt" "Ad_1049_25_79.txt" "Ad_10531_77_79.txt"
但我需要它们按中间数字排序,如下所示:
> f
[1] "Ad_1049_25_79.txt" "Ad_10170_75_79.txt" "Ad_10345_76_79.txt" "Ad_10531_77_79.txt"
因为我只需要文件名的中间数字,我认为最简单的方法是去掉其余的名称并重命名所有文件。为此,我尝试使用strsplit
(plyr
)。
f2 <- strsplit (f,"_79.txt")
但我确信有一种方法可以直接对文件进行排序,而无需重命名所有文件。我尝试使用sort
and 来描述这个名字,regex
但没有成功。这个问题已经困扰了很多天,我花了几个小时搜索和尝试,来解决这个可能很容易的任务。很感谢任何形式的帮助。
旧示例数据集:
f <- c("Ad_10170_75_79.txt", "Ad_10345_76_79.txt",
"Ad_1049_25_79.txt", "Ad_10531_77_79.txt")
谢谢你的回答。我想我必须修改我的示例,因为该解决方案应该适用于所有可能的中间数字,而与它们的数字无关。
新的示例数据集:
f <- c("Ad_10170_75_79.txt", "Ad_10345_76_79.txt",
"Ad_1049_9_79.txt", "Ad_10531_77_79.txt")