[R] Rename multiple files in a directory and write renamed files back to directory

Chel Hee Lee chl948 at mail.usask.ca
Fri Dec 5 17:13:47 CET 2014


Your question is not clear to me.  Do you wish to start numbers from 200 
using 'formatC()'?

 > formatC(seq(from=200, to=1200, by=500), width=5, flag="0")
[1] "00200" "00700" "01200"

You can do the same job using function 'sprintf()' as shown in the below:

 > sprintf("%05d", seq(from=200, to=1200, by=500))
[1] "00200" "00700" "01200"

I like to read the documentation by typing

 > help(formatC)
 > help(sprintf)

You may find answers what you wish to get.  Documentation has been my 
best friend when using R.  I hope this helps.

Chel Hee Lee


On 12/05/2014 09:35 AM, Zilefac Elvis wrote:
> Hi Chel,
> How can I modify the script such that the numbering starts from 200,... instead of 001?
> flag="0" does not accept anything other than 0.
> Thanks,
> Asong.
>
>
>
> On Thursday, December 4, 2014 11:17 PM, Chel Hee Lee <chl948 at mail.usask.ca> wrote:
> I see that a function 'format()' is used in your code.
>
>> format(c(1,5,32,100), width=3, flag="0")
> [1] "  1" "  5" " 32" "100"
>
>> formatC(c(1,5,32,100), width=3, flag="0")
> [1] "001" "005" "032" "100"
>
> I hope this helps.
>
> Chel Hee Lee
>
>
>
> On 12/04/2014 10:54 PM, Zilefac Elvis wrote:
>> 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 <chl948 at 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 at 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.
>>
>>>



More information about the R-help mailing list