This is a continuation from a previous posting of mine: The following algorithm below is what I want to accomplish: Z(xk) = Average(Yi, i belongs to Ik), where Ik contains all i such that for each j, |Xi,j - xkj│≤ 2. Here, j = 1, 2 and i corresponds to the elements in each X and/or xk
>data x1 x2 y 1 1 2 2 2 6 3 3 12 Now, consider a second data frame or matrix (xk): xk1 xk2 0.5 0.5 1.0 0.5 1.5 0.5 2.0 0.5 0.5 1 1.0 1 1.5 1 2.0 1 0.5 1.5 1.0 1.5 1.5 1.5 2.0 1.5 0.5 2 1.0 2 1.5 2 2.0 2 In the end, there should be matrix or data frame with 3 columns, xk1, xk2, and z (the result of the algorithm). Having any NA's as an answer is just fine. Here is my code to get this to get this to work, it is lengthy and I am looking for a way to cut it down and get the same results. w1 <- outer(xk$xk1, data[,x1], function(y,z) abs(z-y)) w2 <- outer(xk$xk2, data[,x2], function(y,z) abs(z-y)) w1[w1 > d1] <- NA w2[w2 > d2] <- NA i1 <- ifelse(!is.na(w1),col(w1),NA) i2 <- ifelse(!is.na(w2),col(w2),NA) #NOW COMPARE i1 AND i2 BY ROWS...IF THEY HAVE A VALID NUMBER IN #THE SAME POSITION (RxC) THEN EXTRACT THE Z-VALUE CORRESPONDING #TO THE COLUMN NUMBER all <- cbind(i1,i2) Ik <- lapply(as.data.frame(t(all)), function(x) data$y[unique(x[duplicated(x)])]) zk <- unlist(lapply(Ik, mean, na.rm = TRUE)) z <- cbind(zk) #FINAL DATA FRAME WILL CONSIST OF xk (XK1 and XK2), ZK xk$z <- z df <- as.data.frame(sapply(xk,rbind)) I hope my question makes sense and someone can help find a way to reduce the amount of code here. I have attached a text file with better numbers to try this with. Thank you, dxc13 http://www.nabble.com/file/p12387673/test.txt test.txt -- View this message in context: http://www.nabble.com/a-faster-and-shorter-way-to-perform-calculations--tf4347973.html#a12387673 Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@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 and provide commented, minimal, self-contained, reproducible code.