[R] do calculations as defined by a string / expand mathematical statements in R

William Dunlap wdunlap at tibco.com
Wed Oct 5 22:21:17 CEST 2011


Avoid parsing strings to make expressions.  It is easy
to do, but hard to do safely and readably.

In your case you could make a short loop out of it
   result <- x[,,,1]
   for(i in seq_len(dim(x)[4])[-1]) {
      result <- result + x[,,,i]
   }
   result <- result / dim(x)[4] 

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Martin Batholdy
> Sent: Wednesday, October 05, 2011 1:14 PM
> To: R Help
> Subject: [R] do calculations as defined by a string / expand mathematical statements in R
> 
> Dear R-group,
> 
> 
> is there a way to perform calculations that are defined in a string format?
> 
> 
> for example I have different variables:
> 
> x1 <- 3
> x2 <- 1
> x4 <- 1
> 
> and a string-variable:
> 
> do <- 'x1 + x2 + x3'
> 
> 
> Is there any way to perform what the variable 'do'-describes
> (just like the formula-element but more elemental)?
> 
> 
> 
> Perhaps my idea to solve my problem is a little bit strange.
> 
> 
> My general problem is, that I have to do arithmetics for which there seems to be no function available
> that I can apply in order to be more flexible.
> 
> 
> To be precise, I have to add up three dimensional arrays.
> 
> I can do that like this (as someone suggested on this help-list - thanks for that!):
> 
> (array[,,1] + array[,,2] + array[,,3]) / 3
> 
> 
> However in my case it can happen that at some point, I don't have to add 3 but 8 'array-slices'
> (or 10 or x).
> 
> And I don't want to manually expand the above statement to:
> 
> (array[,,1] + array[,,2] + array[,,3] + array[,,4] + array[,,5] + array[,,6] + array[,,7] +
> array[,,8]) / 8
> 
> (ok, now I have done it ;)
> 
> 
> 
> So, my thinking was that I can easily expand and change a string (with the paste-function / repeat-
> function etc.).
> But how can I expand a mathematical statement?
> 
> 
> thanks for any suggestions!
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list