reading in results from system(). There must be an easier way...
Why not use con <- pipe(COMMAND) foo <- read.delim(con, colClasses="numeric") close(con) ? See the 'R Data Input/Output Manual'.
On Fri, 12 Sep 2008, Michael A. Gilchrist wrote:
Hello, 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 conversion. Any suggestions would be appreciated. Thanks in advance. Mike ----------------------------------------------------- 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