[R] looking for a more efficient R code.
Gardar Johannesson
johannesson1 at llnl.gov
Tue Jun 27 03:12:56 CEST 2006
Little algebra will convince you that your 'summing' function is just
equal to:
sum(a) + sum(b)*X
So, it is very difficult to get it any faster than:
plot(X, sum(a)+sum(b)*X)
And, by the way, most of the execution time is spent plotting, not
computing the average:
> system.time({y1 <- summing(a,b)})
[1] 0.002 0.000 0.001 0.000 0.000
> system.time({y2 = sum(a)+sum(b)*X})
[1] 0 0 0 0 0
> all.equal(y1,y2)
[1] TRUE
> system.time(plot(X,y2))
[1] 0.019 0.002 0.051 0.000 0.000
>
Gardar
On Mon, 2006-06-26 at 17:21, Taka Matzmoto wrote:
> Dear R-users
>
> I have four simple linear models, which are all in the form of a*X+b
> The estimated parameter vectors are
>
> a <- c(1,2,3,4)
> b <- c(4,3,2,1)
>
> My goal is to draw a plot where x-axis is X (range from -100 to 100) and
> y-axis is the sum of
> all four linear models
>
> X <- seq(-100,100, length=10000)
> plot(X, sum of the four linear functions)
>
> I started with a function for summing
>
> summing <- function(a,b)
> {temp <-0;
> for (i in 1:length(a))
> temp <- temp + a[i]*X+b[i]
> }
>
> plot(X, summing(a,b))
>
> I am a R beginner. I am looking for a more efficient R code.
>
> Any help or advice will be appreciated.
>
> Taka,
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list