[R] How to do platform independent system calls?

S Ellison S.Ellison at LGCGroup.com
Tue Apr 2 19:17:58 CEST 2013


> > 2) Is there a way to generate platform independent paths? So that 
> > "path/2/input.tbl" on *nix systems becomes "path\2\input.tbl" on a 
> > Windows system?
> 
> R already does that automatically. 

Clarification. R does that automatically _for paths used by R_ (including, on my system, the path to command in system(command) ) but NOT for path or file arguments supplied to that system command. So R correctly runs cmd.exe when specified as system("c:/windows/system32/cmd.exe") but if you wanted to supply a path as an  argument R does not know that the argument is a path and wisely doesn't treat it as one.

So (on win XP and using R 2.15.3) 
system("c:\\windows\\system32\\cmd /c dir c:\\windows\\system32\\d*.*", intern=T)
#and
system("c:/windows/system32/cmd /c dir c:\\windows\\system32\\d*.*", intern=T)
#both work but 
system("c:/windows/system32/cmd /c dir c:/windows/system32/d*.*", intern=T)
	#does not



*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}



More information about the R-help mailing list