Subsetting multiple rows of a data frame at once
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_patto at hotmail.com>
To: "smartpink111 at yahoo.com" <smartpink111 at yahoo.com>
Sent: Thursday, July 4, 2013 12:08 AM
Subject: RE: Subsetting multiple rows of a data frame at once
To: "smartpink111 at yahoo.com" <smartpink111 at 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!!