用R重命名日期文件

时间:2020-04-22 11:24:19

标签: r file date rename

我已将2012年至2016年之间每一天的每个文件命名为:2012-01-01.csv; 2012-01-02.csv ...直到2016-12-31.csv。但是对于2017年和2018年,文件的命名如下:20170101.csv; 20170102.csv ...有人可以帮助我在第二个文件中包含连字符,以便它们与第一个文件具有相同的名称吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

编辑:改为使用此

setwd("C:\\Users\\...Path to your data")

DataFileNames <- list.files(pattern="\\.csv$")
sub("(\\d{4})(\\d{2})(\\d{2})(.*)","\\1-\\2-\\3\\4",DataFileNames)
file.rename(DataFileNames,NewDataFileNames)

旧答案:

您的问题中缺少很多信息,但是您应该 能够根据您的需要调整以下代码。通常,您会 如果您有标题则需要编辑read.csv行,并调整其他 参数。

注意:这将覆盖您所有的表,因此请确保在使用read.csv中的lapply之前正确导入了数据 运行write.csv(最后一行)

setwd("C:\\Users\\...Path to your data")

DataFileNames <- list.files(pattern="\\.csv$")
Datafiles <- lapply(DataFileNames, read.csv, header=FALSE)

DataFileNames <- sub("(\\d{4})(\\d{2})(\\d{2}).csv","\\1-\\2-\\3",DataFileNames)
lapply(1:length(Datafiles), function(x) write.csv(Datafiles[x], DataFileNames[x]))

答案 1 :(得分:1)

也许您可以使用list.files + file.rename

尝试以下代码
old <- list.files(pattern = ".*.csv")
new <- paste0(as.Date(gsub(".csv","",old,fixed = TRUE),format = c("%Y-%m-%d","%Y%m%d")),".csv")
file.rename(old,new)