That's great, thanks. I can live with the warnings! Cheers, Rob
On Tue, Aug 26, 2008 at 4:49 PM, ONKELINX, Thierry <[EMAIL PROTECTED]> wrote: > > Just use as.numeric. Non numeric will be NA. So the solution of your > problem is na.omit(as.numeric(temp1)) > > HTH, > > Thierry > > > ------------------------------------------------------------------------ > ---- > ir. Thierry Onkelinx > Instituut voor natuur- en bosonderzoek / Research Institute for Nature > and Forest > Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, > methodology and quality assurance > Gaverstraat 4 > 9500 Geraardsbergen > Belgium > tel. + 32 54/436 185 > [EMAIL PROTECTED] > www.inbo.be > > To call in the statistician after the experiment is done may be no more > than asking him to perform a post-mortem examination: he may be able to > say what the experiment died of. > ~ Sir Ronald Aylmer Fisher > > The plural of anecdote is not data. > ~ Roger Brinner > > The combination of some data and an aching desire for an answer does not > ensure that a reasonable answer can be extracted from a given body of > data. > ~ John Tukey > > -----Oorspronkelijk bericht----- > Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Namens Rob Foxall > Verzonden: dinsdag 26 augustus 2008 10:36 > Aan: r-help@r-project.org > Onderwerp: [R] parse and eval character vector > > Dear R-help, > > I have a character vector, some elements will be numeric, some not, > and some even empty. E.g.: > > temp1 <- c("abcd"," 2 ","") > > I'm only interested in the numeric elements, the rest I can just throw > away. It is easy enough to loop through the vector: > > temp <- try(eval(parse(text=temp1[1])), silent=TRUE); class(temp) # > try-error > temp <- try(eval(parse(text=temp1[2])), silent=TRUE); class(temp) # > numeric > temp <- try(eval(parse(text=temp1[3])), silent=TRUE); class(temp) # NULL > > and then throw away the non-numeric/NULL stuff. But, as this vector > will be long, I would really like to speed things up by not using a > loop, and I thought that "lapply" might do the trick. However: > > temp.fn <- function(x) > try(eval(parse(text=x)), silent=TRUE) > > temp2 <- lapply(temp1, FUN=temp.fn) > class(temp2[2]) # list, for elements 1, 2, and 3 > > and I don't know how to extract the numeric elements from here. So, > can I either use lapply as above and somehow get the information I > need out of "temp2" (I've tried using "unlist" but had no success), or > is there some other function that I can apply to my character vector > to avoid looping? > > Rob. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > > Dit bericht en eventuele bijlagen geven enkel de visie van de schrijver weer > en binden het INBO onder geen enkel beding, zolang dit bericht niet bevestigd > is door een geldig ondertekend document. > The views expressed in this message and any annex are purely those of the > writer and may not be regarded as stating an official position of INBO, as > long as the message is not confirmed by a duly signed document > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.