S speedup in R
07 Jul 1998 16:49:46 -0500
Bill Simpson <firstname.lastname@example.org> writes:
> But the sped-up version just returns a vector of zeros:
> cif<-function(x, y, tau, h=tau-tau)
> # conditional cross-intensity function for two point process realizations.
> # estimated at tau.
> # x and y are vectors of event times (sorting is not necessary).
> # tau is the lag (or vector of lags)
> # h is binwidth.
> # see Brillinger, Bryant, & Segundo (1976) eq 13, mhatAB(u)
> n <- length(x)
> cif.numerator <- numeric(length(tau))
> for(tt in tau)
> cif.numerator[tt] <- sum(round(rank(c(x + tt + h/2, y))[1:n], 0) -
> round(rank(c(x + tt - h/2, y))[1:n], 0))
> cif.numerator/(n * h)
You are using tt for an index in addition to being the value of an
element of the tau vector. Unless tau always happens to be
1:length(tau) that won't work.
You probably want to change the "for" statement to
for (tt in seq( along = tau ) )
cif.numerator[tt] <- sum(round(rank(c(x + tau[tt] + h/2, y))[1:n], 0) -
round(rank(c(x + tau[tt] - h/2, y))[1:n], 0))
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: email@example.com