With cygwin bash installed under Windows, one can use pipes in system(), e.g., like this:
R 2.5.0 under Windows XP: > system("echo foo | sed s/foo/bar/") # this doesn't work under windows foo | sed s/foo/bar/ > # but using 'bash -c' does: > system("bash -c \"echo foo | sed s/foo/bar/\"") bar > # and some use of quotes within the command actually works! > system("bash -c \"echo foo | sed 's/foo/bar rrr/'\"") bar rrr > [Beware: complex quoting inside the -c command can be difficult to get right.] -- Tony Plate Prof Brian Ripley wrote: > The first comment is that will only work on Unix-alikes, since '|' needs a > shell. > > So, if this is on a Unix-alike you need to establish if the program is in > the path at run time and cache the result. I have no idea if this would > actually work, but for example system('gp --version') might provide a > suitable test. > > On Fri, 27 Apr 2007, Robin Hankin wrote: > >> Hello >> >> Quite often I need higher precision, or larger numbers, >> than IEEE double precision allows. One strategy I sometimes >> use is to use system() to call pari/gp, which is not constrained by >> IEEE. >> >> [pari/gp is a GPL high-level mathematical programming language >> geared towards pure mathematics] >> >> Two of my packages contain lines like the following: >> >>> system(" echo '1.12^66' | gp -q f",intern=TRUE) >> [1] >> "1771.697189476241729649767636564084681203806302318041262248838950177194 >> 116346432205160921568393661760" >> >> Note the high precision of the answer. >> >> My question is, how to deal with the possibility that pari/gp is not >> installed? >> >> If the system cannot find gp for some reason, I get: >> >>> system(" echo '1.12^66' | gp -q f",intern=TRUE) >> sh: line 1: gp: command not found >> character(0) >> What's the recommended way to handle this eventuality gracefully? The >> functions that do use pari/gp have "pure" R equivalents (but much >> slower and less accurate) so I want users to be able to install the >> package without pari/gp. >> >> >> -- >> Robin Hankin >> Uncertainty Analyst >> National Oceanography Centre, Southampton >> European Way, Southampton SO14 3ZH, UK >> tel 023-8059-7743 >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel