x <- array(list(111,52,102,55,108,80,109,45,118,60,79,34,88,45,102,68,105,26,92,70,131,85,104,54,83,55,84,40,85,55,110,50,121,71,120,55,100,70,94,55,89,60,93,65,128,66,84,55,127,90,106,55,129,60,82,35,106,55,109,26,91,14,111,45,105,35,118,65,103,35,101,60,101,60,95,60,108,65,95,45,98,20,82,50,100,60,100,48,107,40,95,55,97,54,93,40,81,40,89,34,111,60,95,30,106,75,83,24,81,30,115,80,112,60,92,46,85,35,95,60,115,75,91,54,107,78,102,20,86,45,96,60,114,70,105,35,82,20,120,60,88,20,90,50,85,50,106,75,109,70,75,20,91,45,96,20,108,50,86,55,98,15,99,26,95,25,88,30,111,60,103,40,107,40,118,50),dim=c(2,88),dimnames=list(c('IQ','Grade'),1:88))
 y <- array(NA,dim=c(2,88),dimnames=list(c('IQ','Grade'),1:88))
 for (i in 1:dim(x)[1])
 {
 	for (j in 1:dim(x)[2])
 	{
 		y[i,j] <- as.numeric(x[i,j])
 	}
 }
par3 = 'TRUE'
par2 = '2'
par1 = '1'
ylab = 'Y Variable Name'
xlab = 'X Variable Name'
main = 'IQ and Average Grades'
cat1 <- as.numeric(par1) #
cat2<- as.numeric(par2) #
intercept<-as.logical(par3)
x <- t(x)
xdf<-data.frame(t(y))
(V1<-dimnames(y)[[1]][cat1])
(V2<-dimnames(y)[[1]][cat2])
xdf <- data.frame(xdf[[cat1]], xdf[[cat2]])
names(xdf)<-c('Y', 'X')
if(intercept == FALSE) (lmxdf<-lm(Y~ X - 1, data = xdf) ) else (lmxdf<-lm(Y~ X, data = xdf) )
sumlmxdf<-summary(lmxdf)
(aov.xdf<-aov(lmxdf) )
(anova.xdf<-anova(lmxdf) )

#Note: the /var/wessaorg/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab
load(file="/var/wessaorg/rcomp/createtable")

a<-table.start()
nc <- ncol(sumlmxdf$'coefficients')
nr <- nrow(sumlmxdf$'coefficients')
a<-table.row.start(a)
a<-table.element(a,'Linear Regression Model', nc+1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, lmxdf$call['formula'],nc+1)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, 'coefficients:',1,TRUE)
a<-table.element(a, ' ',nc,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, ' ',1,TRUE)
for(i in 1 : nc){
a<-table.element(a, dimnames(sumlmxdf$'coefficients')[[2]][i],1,TRUE)
}#end header
a<-table.row.end(a)
for(i in 1: nr){
a<-table.element(a,dimnames(sumlmxdf$'coefficients')[[1]][i] ,1,TRUE)
for(j in 1 : nc){
a<-table.element(a, round(sumlmxdf$coefficients[i, j], digits=3), 1 ,FALSE)
}# end cols
a<-table.row.end(a)
} #end rows
a<-table.row.start(a)
a<-table.element(a, '- - - ',1,TRUE)
a<-table.element(a, ' ',nc,FALSE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, 'Residual Std. Err. ',1,TRUE)
a<-table.element(a, paste(round(sumlmxdf$'sigma', digits=3), ' on ', sumlmxdf$'df'[2], 'df') ,nc, FALSE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, 'Multiple R-sq. ',1,TRUE)
a<-table.element(a, round(sumlmxdf$'r.squared', digits=3) ,nc, FALSE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, 'Adjusted R-sq. ',1,TRUE)
a<-table.element(a, round(sumlmxdf$'adj.r.squared', digits=3) ,nc, FALSE)
a<-table.row.end(a)
a<-table.end(a)
table.save(a,file="/var/wessaorg/rcomp/tmp/1yh581385643588.tab") 
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'ANOVA Statistics', 5+1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, ' ',1,TRUE)
a<-table.element(a, 'Df',1,TRUE)
a<-table.element(a, 'Sum Sq',1,TRUE)
a<-table.element(a, 'Mean Sq',1,TRUE)
a<-table.element(a, 'F value',1,TRUE)
a<-table.element(a, 'Pr(>F)',1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, V2,1,TRUE)
a<-table.element(a, anova.xdf$Df[1])
a<-table.element(a, round(anova.xdf$'Sum Sq'[1], digits=3))
a<-table.element(a, round(anova.xdf$'Mean Sq'[1], digits=3))
a<-table.element(a, round(anova.xdf$'F value'[1], digits=3))
a<-table.element(a, round(anova.xdf$'Pr(>F)'[1], digits=3))
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a, 'Residuals',1,TRUE)
a<-table.element(a, anova.xdf$Df[2])
a<-table.element(a, round(anova.xdf$'Sum Sq'[2], digits=3))
a<-table.element(a, round(anova.xdf$'Mean Sq'[2], digits=3))
a<-table.element(a, ' ')
a<-table.element(a, ' ')
a<-table.row.end(a)
a<-table.end(a)
table.save(a,file="/var/wessaorg/rcomp/tmp/2fu0o1385643588.tab") 
postscript(file="/var/wessaorg/rcomp/tmp/3f8zj1385643588.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
plot(Y~ X, data=xdf, xlab=V2, ylab=V1, main='Regression Solution')
if(intercept == TRUE) abline(coef(lmxdf), col='red')
if(intercept == FALSE) abline(0.0, coef(lmxdf), col='red')
dev.off()
library(car)
postscript(file="/var/wessaorg/rcomp/tmp/4ujvl1385643588.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
qq.plot(resid(lmxdf), main='QQplot of Residuals of Fit')
dev.off()
postscript(file="/var/wessaorg/rcomp/tmp/54dl41385643588.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
plot(xdf$X, resid(lmxdf), main='Scatterplot of Residuals of Model Fit')
dev.off()
postscript(file="/var/wessaorg/rcomp/tmp/6ed5c1385643588.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) 
plot.lm(lmxdf, which=4)
dev.off()

try(system("convert tmp/3f8zj1385643588.ps tmp/3f8zj1385643588.png",intern=TRUE))
try(system("convert tmp/4ujvl1385643588.ps tmp/4ujvl1385643588.png",intern=TRUE))
try(system("convert tmp/54dl41385643588.ps tmp/54dl41385643588.png",intern=TRUE))
try(system("convert tmp/6ed5c1385643588.ps tmp/6ed5c1385643588.png",intern=TRUE))

