[R] reading in results from system(). There must be an easier way...
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Sep 12 20:10:58 CEST 2008
Why not use
con <- pipe(COMMAND)
foo <- read.delim(con, colClasses="numeric")
? See the 'R Data Input/Output Manual'.
On Fri, 12 Sep 2008, Michael A. Gilchrist wrote:
> I am currently using R to run an external program and then read the results
> the external program sends to the stdout which are tsv data.
> When R reads the results in it converts it to to a list of strings which I
> then have to maniuplate with a whole slew of commands (which, figuring out
> how to do was a reall challenge for a newbie like myself)--see below.
> Here's the code I'm using. COMMAND runs the external program.
> rawInput= system(COMMAND,intern=TRUE);##read in tsv values
> rawInput = strsplit(rawInput, split="\t");##split elements w/in the list
> ##of character strings by "\t"
> rawInput = unlist(rawInput); ##unlist, making it one long vector
> mode(rawInput)="double"; ##convert from strings to double
> finalInput = data.frame(t(matrix(rawInput, nrow=6))); ##convert
> Because I will be doing this 100,000 of times as part of an optimization
> problem, I am interested in learning a more efficient way of doing this
> Any suggestions would be appreciated.
> Thanks in advance.
> Department of Ecology & Evolutionary Biology
> 569 Dabney Hall
> University of Tennessee
> Knoxville, TN 37996-1610
> phone:(865) 974-6453
> fax: (865) 974-6042
> web: http://eeb.bio.utk.edu/gilchrist.asp
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help