[R] extending code to handle more variables

dxc13 dxc13 at health.state.ny.us
Thu Feb 21 04:37:08 CET 2008


useR's,

Consider the variables defined below:
yvals <- c(25,30,35)
x1 <- c(1,2,3)
x2 <- c(3,4,5)
x3 <- c(6,7,8)
x <- as.data.frame(cbind(x1,x2,x3))
delta <- c(2.5, 1.5, 0.5)
h <- delta/2
vars <- 3
xk1 <- seq(min(x1)-0.5, max(x1)+0.5, 0.5)
xk2 <- seq(min(x2)-0.5, max(x2)+0.5, 0.5)
xk3 <- seq(min(x3)-0.5, max(x3)+0.5, 0.5)
xks <- list(xk1,xk2,xk3)
xk <- do.call("expand.grid", xks)	

I want to perform several calculations with these variables.  For only two
variables, my code is successful, however, here there are three variables
(x1,x2,x3) and there could really be n variables (x1,...xn) if need be. 
Below is code that works for two variables, I want to convert it to work for
any number of variables.  Any ideas?
yk <- numeric(nrow(xk))
for (j in 1:nrow(xk)) {
	w1 <- abs(x[,1] - xk$x1[j])
	w2 <- abs(x[,2] - xk$x2[j])
	Ik1 <- which(w1 <= h[1])
	Ik2 <- which(w2 <= h[2])
	Ik <- intersect(Ik1, Ik2)
	YIk <- yvals[Ik]
	yk[j] <- mean(YIk)     
}
The result is the one-dimensional vector yk.  Does anyone know how to extend
this code to cover any number of variables?  Thanks in advance.

dxc13
-- 
View this message in context: http://www.nabble.com/extending-code-to-handle-more-variables-tp15604234p15604234.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list