Hi, carbon.fit = expand.grid(list(x=seq(0, 5, 0.01), y=seq(0, 5, 0.01))) dim(carbon.fit) #[1] 251001 2
xtNew<-sprintf("%.2f",xt) ytNew<- sprintf("%.2f",yt) carbon.fit[]<- lapply(carbon.fit,function(x) sprintf("%.2f",x)) res<-do.call(rbind,lapply(seq_along(xtNew),function(i) subset(carbon.fit,x==xtNew[i]&y==ytNew[i]))) nrow(res) #[1] 28 res # x y #12631 1.05 0.25 #5296 2.85 0.10 #45431 3.40 0.90 #12951 4.25 0.25 #52631 0.25 1.05 #85476 3.05 1.70 #103076 3.70 2.05 #145311 0.20 2.90 #117766 0.30 2.35 #130331 0.70 2.60 #127861 1.05 2.55 #107836 1.20 2.15 #137916 1.40 2.75 #102896 1.90 2.05 #135541 2.70 2.70 #113051 3.25 2.25 #128111 3.55 2.55 #103166 4.60 2.05 #183071 2.05 3.65 #153021 2.15 3.05 #150671 3.70 3.00 #175836 4.85 3.50 #188366 4.90 3.75 #243146 1.60 4.85 #225696 2.45 4.50 #225771 3.20 4.50 #168226 3.90 3.35 #245936 4.45 4.90 A.K. ________________________________ From: Shaun ♥ Anika <pro_pa...@hotmail.com> To: "smartpink...@yahoo.com" <smartpink...@yahoo.com> Sent: Thursday, July 4, 2013 12:08 AM Subject: RE: Subsetting multiple rows of a data frame at once Hi There, i can give you the data needed to perform this task... library(akima) library(fields) xt<- c(1.05, 2.85, 3.40, 4.25, 0.25, 3.05, 3.70, 0.20, 0.30, 0.70, 1.05, 1.20, 1.40, 1.90, 2.70, 3.25, 3.55, 4.60, 2.05, 2.15, 3.70, 4.85, 4.90, 1.60, 2.45, 3.20, 3.90, 4.45) yt<- c(0.25, 0.10, 0.90, 0.25, 1.05, 1.70, 2.05, 2.90, 2.35, 2.60, 2.55, 2.15, 2.75, 2.05, 2.70, 2.25, 2.55, 2.05, 3.65, 3.05, 3.00, 3.50, 3.75, 4.85, 4.50, 4.50, 3.35, 4.90) xs<- c(0.45, 1.05, 2.75, 3.30, 4.95, 0.40, 1.05, 2.30, 3.45, 4.60, 0.05, 1.95, 2.95, 3.70, 4.55, 0.75, 1.60, 2.10, 3.60, 4.90, 0.05, 1.35, 2.60, 3.40, 4.25) ys<- c(0.45, 0.95, 0.75, 0.95, 0.10, 1.90, 1.45, 1.25, 1.45, 1.05, 2.85, 2.60, 2.05, 2.60, 2.55, 3.75, 3.30, 3.95, 3.45, 3.70, 4.95, 4.35, 4.55, 4.40, 4.95) carbon<- c(1.43, 1.82, 1.40, 1.43, 1.96, 1.61, 1.91, 1.53, 1.17, 1.83, 2.43, 2.02, 1.66, 2.45, 2.46, 1.39, 1.10, 1.38, 1.91, 2.13, 1.88, 1.26, 2.15, 1.89, 1.69) carbon.df=data.frame(x=xs,y=ys,z=carbon) carbon.loess= loess(z~x*y, data= carbon.df, degree= 2) carbon.fit = expand.grid(list(x=seq(0, 5, 0.01), y=seq(0, 5, 0.01))) z=predict(carbon.loess, newdata= carbon.fit) carbon.fit$Height=as.numeric(z) image.plot(seq(0,5,0.01,), seq(0,5,0.01), z, xlab = "", ylab="",main = "Carbon") trees<-do.call(rbind,lapply(seq_along(xt),function(i) subset(carbon.fit,x==xt[i]&y==yt[i]))) ## xt is 28 integers long and when i run the above code it only returns the values of 18 out of the 28 (xt,yt) pairs that i want. thanks for your help!! ______________________________________________ R-help@r-project.org 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.