[R] Add values of rlm coefficients to xyplot

PtitBleu ptit_bleu at yahoo.fr
Tue Nov 9 14:01:55 CET 2010


Hello again,

Thanks to this forum, I found a lapply command to apply "rlm" to each Device
of the Name column of the df1 data frame (df1 data frame is given in the
previous post).

I'm now looking for a nice way to create a data frame with the name of the
device, the intercept and the slope. I now use a for loop (see below) but
I'm sure there is a more elegant way to retrieve these coefficients, isn't
it ?

Thanks in advance for your help to improve this script.
Ptit Bleu.

# Library including rlm
library(MASS)
# To apply rlm to each Device of df1$Name
bbb<-lapply(split(df1, df1$Name), function(X)(rlm(col2 ~ col3, data=X)})

# To get Intercept and Slope for each device
dfrlm1<-data.frame()
for (u in 1:length(names(bbb))) {
dfrlm1<-rbind(dfrlm1, data.frame(as.character(names(bbb)[u]),
bbb[[u]][[1]][[1]], bbb[[u]][[1]][[2]]))
}
names(dfrlm1)<-c("Name", "Intercept", "Slope")

# To plot the graphs and display the rlm coefficients
x11(15,12)
xyplot(df1$col2 ~ df1$col3 | df1$Name,
panel = function(x, y,...) {
                panel.abline(h=seq(20,30,1), col="gray")
                panel.abline(v=seq(20,70,5), col="gray")
                panel.xyplot(x, y, type="p", col="red", pch=20,...)
                panel.abline(rlm(y ~ x), col="blue")
                panel.text(40,21, paste("y =",
round(dfrlm1$Intercept[panel.number()],3),"+ (",
round(dfrlm1$Slope[panel.number()],3),") *x"))
                }, scales=list(cex=1.2),
                 xlab=list("X", cex=1.4), ylab=list("Y", cex=1.4),
xlim=c(20,70), ylim=c(20,30))

-- 
View this message in context: http://r.789695.n4.nabble.com/Add-values-of-rlm-coefficients-to-xyplot-tp3032166p3033669.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list