[R] sprintf in system command

Rui Barradas ruipbarradas at sapo.pt
Fri Feb 15 18:45:19 CET 2013


Hello,

In what follows I've used print(), not system().
The trick is to use paste0() to form the command.


for (i in 1:10) {
	cmd <- paste0('C:/Users/.../dssp-2.0.4-win32.exe -i ', 
sprintf("data_%s.txt",i), ' -o ', sprintf("data_%s.dssp",i))
	print(cmd)
}


Hope this helps,

Rui Barradas

Em 15-02-2013 17:33, Esam Tolba escreveu:
> hi all
> I am using r (2.15.2) in windows 7 32bit
> I want to execute an external program from r console. the program is a
> command line program which needs the following format to start
>                                    C:/Users/.../dssp-2.0.4-win32.exe -i
> data_1.txt -o data_1.dssp
> I used the system command as:
>                                    system
> ('C:/Users/.../dssp-2.0.4-win32.exe -i data.txt -o data.dssp')
> it worked.
> Now I want to use the program on a list of files, so for that I used a
> for loop and sprintf
>                                     for (i in 1:10) {
>                                     system
> ('C:/Users/.../dssp-2.0.4-win32.exe -i sprintf("data_%s.txt",i) -o
> sprintf("data_%s.dssp",i)')
> but I received the following error
>                      No such file
>                      Warning message:
>                      running command 'C:/Users/.../dssp-2.0.4-win32.exe
> -i sprintf("data_%s.txt",i) -o sprintf("data_%s.dssp",i)' had status 1
>
>
> SO, what is my mistake? and is there a way to update the input file
> name based on  the for loop counter
>
> Best Regards,
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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