Dear R-users,
I want to plot residuals vs fitted for multiple groups with ggplot2.
I try this code, but unsuccessful.
library("plyr")
models<-dlply(dat1,"d",function(df)
mod<-lm(y~x,data=df)
ggplot(models,aes(.fitted,.resid), color=factor(d))+
geom_hline(yintercept=0,col="white",size=2)+
geom_point()+
geom_smooth(se=F)
--
---
Catalin-Constantin ROIBU
Forestry engineer, PhD
Forestry Faculty of Suceava
Str. Universitatii no. 13, Suceava, 720229, Romania
office phone +4 0230 52 29 78, ext. 531
mobile phone +4 0745 53 18 01
+4 0766 71 76 58
FAX: +4 0230 52 16 64
silvic.usv.ro
[[alternative HTML version deleted]]
HI,
Not sure whether ggplot() works with lists.
If you want to plot residuals.vs.fitted for multiple groups, this could help
you.? Assuming that you want separate plots for each group:
#You didn't provide any example.
dat1<-read.csv("skin_color.csv",sep="\t") #You can
replace this with your dataset
dat1$d<-factor(dat1$skin_color)
colnames(dat1)[2:3]<-c("y","x")
models<-dlply(dat1,"d",function(df) mod <- lm(y~x,data=df))
models[[1]]
#Call:
#lm(formula = y ~ x, data = df)
#Coefficients:
#(Intercept)??????????? x?
#??? 51.8357?????? 0.1407?
mypath<-file.path("/home/arun/Trial1",paste("catalin_",1:5,".jpg",sep=""))?
#change the file.path according to your system
?for(i in seq_along(mypath)){
jpeg(file=mypath[i])
par(mfrow=c(2,2))
line<-lm(y~x,data=dat1[dat1$d==i,])
?plot(line,which=1:4)# if you want only residual vs. fitted, change which=1
?#abline(0,0)
?dev.off()
?}
?line1<-lm(y~x,data=dat1[dat1$d==1,])
?line1
#
#Call:
#lm(formula = y ~ x, data = dat1[dat1$d == 1, ])
#
#Coefficients:
#(Intercept)??????????? x?
?#?? 51.8357?????? 0.1407?
A.K.
----- Original Message -----
From: catalin roibu <catalinroibu at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Tuesday, January 8, 2013 4:22 AM
Subject: [R] plot residuals per factor
Dear R-users,
I want to plot residuals vs fitted for multiple groups with ggplot2.
I try this code, but unsuccessful.
library("plyr")
models<-dlply(dat1,"d",function(df)
mod<-lm(y~x,data=df)
? ggplot(models,aes(.fitted,.resid), color=factor(d))+
? geom_hline(yintercept=0,col="white",size=2)+
? geom_point()+
? geom_smooth(se=F)
--
---
Catalin-Constantin ROIBU
Forestry engineer, PhD
Forestry Faculty of Suceava
Str. Universitatii no. 13, Suceava, 720229, Romania
office phone? ? +4 0230 52 29 78, ext. 531
mobile phone? +4 0745 53 18 01
? ? ? ? ? ? ? ? ? ? ? +4 0766 71 76 58
FAX:? ? ? ? ? ? ? ? +4 0230 52 16 64
silvic.usv.ro
??? [[alternative HTML version deleted]]
______________________________________________
R-help at 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.
Hi,
I forgot to mention:
levels(dat1$d)
#[1] "1" "2" "3" "4" "5"
Suppose, if I use different levels
library(car)
dat1$d1<-recode(dat1$d,"1='A';2='B';3='C';4='D';5='E'")
?levels(dat1$d1) # check the order of the levels
#[1] "A" "B" "C" "D" "E"
mypath<-file.path("/home/arun/Trial1",paste("catalin_",LETTERS[1:5],".jpg",sep=""))?
#change the file.path according to your system
for(i in seq_along(mypath)){
?jpeg(file=mypath[i])
?par(mfrow=c(2,2))
?line<-lm(y~x,data=dat1[as.numeric(dat1$d1)==i,])
? plot(line,which=1:4)# if you want only residual vs. fitted, change which=1
? #abline(0,0)
? dev.off()
? }
In case you need to change the order of levels
?dat1$d1<-factor(dat1$d1,levels=c("C","D","E","A","B"))
?levels(dat1$d1)
#[1] "C" "D" "E" "A" "B"
mypath<-file.path("/home/arun/Trial1",paste("catalin_",LETTERS[c(3,4,5,1,2)],".jpg",sep=""))
?for(i in seq_along(mypath)){
?jpeg(file=mypath[i])
? par(mfrow=c(2,2))
? line<-lm(y~x,data=dat1[as.numeric(dat1$d1)==i,])
?? plot(line,which=1:4)
?? #abline(0,0)
?? dev.off()
?? }
A.K.
----- Original Message -----
From: catalin roibu <catalinroibu at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Tuesday, January 8, 2013 4:22 AM
Subject: [R] plot residuals per factor
Dear R-users,
I want to plot residuals vs fitted for multiple groups with ggplot2.
I try this code, but unsuccessful.
library("plyr")
models<-dlply(dat1,"d",function(df)
mod<-lm(y~x,data=df)
? ggplot(models,aes(.fitted,.resid), color=factor(d))+
? geom_hline(yintercept=0,col="white",size=2)+
? geom_point()+
? geom_smooth(se=F)
--
---
Catalin-Constantin ROIBU
Forestry engineer, PhD
Forestry Faculty of Suceava
Str. Universitatii no. 13, Suceava, 720229, Romania
office phone? ? +4 0230 52 29 78, ext. 531
mobile phone? +4 0745 53 18 01
? ? ? ? ? ? ? ? ? ? ? +4 0766 71 76 58
FAX:? ? ? ? ? ? ? ? +4 0230 52 16 64
silvic.usv.ro
??? [[alternative HTML version deleted]]
______________________________________________
R-help at 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.