[R] reading in results from system(). There must be an easier way...
ggrothendieck at gmail.com
Fri Sep 12 19:15:10 CEST 2008
The conversion to a data frame and the transpose might be time consuming. In
addition to other comments you have received, try this:
matrix(rawinput, ncol = 6, byrow = TRUE)
and if you don't really need a data frame eliminate the conversion from matrix
You might time this against the code you posted to see if it makes a difference.
On Fri, Sep 12, 2008 at 12:34 PM, Michael A. Gilchrist <mikeg at utk.edu> 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
> R-help at r-project.org mailing list
> 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