[R] How do I get 10^4 to become 10000?

Marc Schwartz mschwartz at medanalytics.com
Tue Apr 22 05:23:08 CEST 2003


>-----Original Message-----
>From: r-help-bounces at stat.math.ethz.ch 
>[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Patrick
Connolly
>Sent: Monday, April 21, 2003 8:51 PM
>To: R-help
>Subject: [R] How do I get 10^4 to become 10000?
>
>
>Of course, that's as trivial as it gets on the command line, 
>but I can't work out how to get a column of numbers that are 
>entered as "10^5" from its 'character' format into a numeric one?
>
>I feel a bit embarrassed asking such a simple question.  Too 
>much Easter....
>
>Thanks
> 
>Patrick Connolly


For an individual value you can use:

> eval(parse(text = "10 ^ 5"))
[1] 1e+05


However, that simple approach does not work with a vector, since the
'text' argument is treated as if it were single lines in an input
file.  Thus you need to do something like this to loop through the
vector elements:

# create the character vector
cv <- c("10 ^ 5", "10 ^ 4", "10 ^ 8")

# function to convert char vector elements to numeric
convtext <- function(x) eval(parse(text = x))

# use sapply to convert the vector
sapply(cv, convtext, USE.NAMES = FALSE)
[1] 1e+05 1e+04 1e+08


HTH,

Marc Schwartz



More information about the R-help mailing list