Hi Chel,
Thanks for the timely reply.
It works but a minor problem remains.
Here is the modified version of your code:
file_names<- list.files(pattern="Sim1971-2000_Daily_")
new_names <- paste("rcp45_Daily_Sim",format(seq(length(file_names)), width=3, flag="00"),
".dat", sep="")
#files <- paste(paste(getwd(),lfile,sep="/"), list.files(lfile),sep="/")#
getwd of these files/contents
file.rename(from=file_names, to=new_names)
list.files(pattern="*.dat")
I changed width =3 and flag=00 because my output has to be 001.dat...200.dat.
However, this is what i got:
list.files(pattern="*.dat")
[1] "rcp45_Daily_Sim 1.dat" "rcp45_Daily_Sim 2.dat" "rcp45_Daily_Sim 3.dat"
"rcp45_Daily_Sim 4.dat"
[5] "rcp45_Daily_Sim 5.dat" "rcp45_Daily_Sim 6.dat" "rcp45_Daily_Sim 7.dat"
"rcp45_Daily_Sim 8.dat"
[9] "rcp45_Daily_Sim 9.dat" "rcp45_Daily_Sim 10.dat"
The zeros disappear but I need them.
Please help.
Asong.
On Thursday, December 4, 2014 10:16 PM, Chel Hee Lee <chl...@mail.usask.ca>
wrote:
I put five data files (example1.dat, example2.dat, example3.dat,
example4.dat, example5.dat, example6.dat) in my working directory.
file_names <- list.files(pattern="*.dat")
file_names
[1] "example1.dat" "example2.dat" "example3.dat" "example4.dat"
"example5.dat"
[6] "example6.dat"
new_names <- paste("new_example_",
+ formatC(seq(length(file_names)), width=2, flag="0"),
+ ".dat", sep="")
new_names
[1] "new_example_01.dat" "new_example_02.dat" "new_example_03.dat"
[4] "new_example_04.dat" "new_example_05.dat" "new_example_06.dat"
file.rename(from=file_names, to=new_names)
[1] TRUE TRUE TRUE TRUE TRUE TRUE
list.files(pattern="*.dat")
[1] "new_example_01.dat" "new_example_02.dat" "new_example_03.dat"
[4] "new_example_04.dat" "new_example_05.dat" "new_example_06.dat"
Is this what you are looking for? I hope this helps.
Chel Hee Lee
On 12/04/2014 09:44 PM, Zilefac Elvis via R-help wrote:
Hello,
I would like to rename multiple files in a directory. Filenames are read using:
lfile <- list.files(pattern="rcp45_Daily_")
files <- paste(paste(getwd(),lfile,sep="/"), list.files(lfile),sep="/")# getwd
of these files
dput(lfile)
c("rcp45_Daily_Sim001.dat", "rcp45_Daily_Sim002.dat")
- How can I rename these files (200 in number) using something like:
file.rename(lfile, paste0("rcp45_Daily_Sim", 1:200))?The new filenames
should be rcp45_Daily_Sim001, rcp45_Daily_Sim002, ..., rcp45_Daily_Sim200.
- I would like to write the new file names to the directory.
The data files contain huge amounts of data and should not be read into R. Only
the file names should change.
Many thanks for your helpful answers.
Asong.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.