On Saturday 13 November 2004 00:51, James Muller wrote: > Hi all, I have the following problem, best expressed by my present > solution: > > # p is a vector > myfunc <- function (p) { > x[1] <- p[1] > for (i in c(2:length(p))) { > x[i] <- 0.8*p[i] + 0.2*p[i-1] > } > return (x) > }
Does this work at all? I get > myfunc <- function (p) { + x[1] <- p[1] + for (i in c(2:length(p))) { + x[i] <- 0.8*p[i] + 0.2*p[i-1] + } + return (x) + } > > myfunc(1:10) Error in myfunc(1:10) : Object "x" not found Anyway, simple loops are almost always avoidable. e.g., myfunc <- function (p) { x <- p x[-1] <- 0.8 * p[-1] + 0.2 * p[-length(p)] x } Deepayan > > That is, I'm calculating a time-weighted average. Unfortunately the > scale of the problem is big. length(p) in this case is such that each > call takes about 6 seconds, and I have to call it about 2000 times > (~3 hours). And, I'd like to do this each day. Thus, a more efficient > method is desirable. > > Of course, this could be done faster by writing it in c, but I want > to avoid doing that if there already exists something internal to do > the operation quickly (because I've never programmed c for use in R). > > Can anybody offer a solution? > > I apologise if this is a naive question. > > James ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html