another way to do it is using eval and parse: yyy<-numeric() for(i in 1:length(xxx)) yyy[i] <- eval(parse(text=xxx[i]))
or ... unlist(lapply(as.list(xxx), function(x) eval(parse(text=x)))) then xxx can contain any valid expressions (not necessarily fractions) Kenn On Sat, Jun 21, 2008 at 12:44 PM, Hans-Jörg Bibiko <[EMAIL PROTECTED]> wrote: > > On 21.06.2008, at 01:36, Ken Liu wrote: > >> I would like to convert a character vector >> >> xxx <- c("1/2", "1/4") >> >> to >> >> yyy <- c(0.5, 0.25) >> >> >> , but as.numeric didn't work for me. Could anyone give me a hint please? >> > > There are many many ways, and they're depending on the structure of xxx. If > you only have such fractions you can use this naïve approach: > > as.numeric( gsub("(\\d+)/(\\d+)", "\\1", xxx, perl=T) ) / as.numeric( > gsub("(\\d+)/(\\d+)", "\\2", xxx, perl=T) ) > > --Hans > > > ______________________________________________ > 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. > [[alternative HTML version deleted]]
______________________________________________ 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.