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,
I think what you want is something like this
system(sprintf('C:/Users/.../dssp-2.0.4-win32.exe -i data%d.txt -o
data%d.dssp', i, i))
On Fri, Feb 15, 2013 at 12:33 PM, Esam Tolba <eatolba at gmail.com>
wrote:> 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.
--
Jim Holtman
Data Munger Guru
What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.
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.
>