x <- array(list('GOOD' ,'HIGH' ,25 ,'GOOD' ,'HIGH' ,0 ,'GOOD' ,'HIGH' ,-16 ,'GOOD' ,'HIGH' ,5 ,'GOOD' ,'HIGH' ,11 ,'GOOD' ,'HIGH' ,-6 ,'GOOD' ,'HIGH' ,42 ,'GOOD' ,'HIGH' ,-2 ,'GOOD' ,'HIGH' ,-13 ,'GOOD' ,'HIGH' ,14 ,'GOOD' ,'HIGH' ,4 ,'GOOD' ,'HIGH' ,-22 ,'GOOD' ,'HIGH' ,19 ,'GOOD' ,'HIGH' ,6 ,'GOOD' ,'HIGH' ,-6 ,'GOOD' ,'LOW' ,-25 ,'GOOD' ,'LOW' ,-23 ,'GOOD' ,'LOW' ,-28 ,'GOOD' ,'LOW' ,-22 ,'GOOD' ,'LOW' ,-22 ,'GOOD' ,'LOW' ,-10 ,'GOOD' ,'LOW' ,-20 ,'GOOD' ,'LOW' ,-24 ,'GOOD' ,'LOW' ,-24 ,'GOOD' ,'LOW' ,-22 ,'GOOD' ,'LOW' ,-23 ,'GOOD' ,'LOW' ,-19 ,'GOOD' ,'LOW' ,-2 ,'GOOD' ,'LOW' ,12 ,'GOOD' ,'LOW' ,-8 ,'GOOD' ,'LOW' ,-17 ,'GOOD' ,'LOW' ,-30 ,'SCIENTIFIC' ,'HIGH' ,-19 ,'SCIENTIFIC' ,'HIGH' ,-24 ,'SCIENTIFIC' ,'HIGH' ,-4 ,'SCIENTIFIC' ,'HIGH' ,-24 ,'SCIENTIFIC' ,'HIGH' ,0 ,'SCIENTIFIC' ,'HIGH' ,-4 ,'SCIENTIFIC' ,'HIGH' ,5 ,'SCIENTIFIC' ,'HIGH' ,-1 ,'SCIENTIFIC' ,'HIGH' ,-9 ,'SCIENTIFIC' ,'HIGH' ,-5 ,'SCIENTIFIC' ,'HIGH' ,-6 ,'SCIENTIFIC' ,'HIGH' ,4 ,'SCIENTIFIC' ,'HIGH' ,-13 ,'SCIENTIFIC' ,'HIGH' ,-1 ,'SCIENTIFIC' ,'HIGH' ,-3 ,'SCIENTIFIC' ,'HIGH' ,-11 ,'SCIENTIFIC' ,'HIGH' ,-6 ,'SCIENTIFIC' ,'HIGH' ,-4 ,'SCIENTIFIC' ,'LOW' ,6 ,'SCIENTIFIC' ,'LOW' ,-5 ,'SCIENTIFIC' ,'LOW' ,14 ,'SCIENTIFIC' ,'LOW' ,-11 ,'SCIENTIFIC' ,'LOW' ,14 ,'SCIENTIFIC' ,'LOW' ,-5 ,'SCIENTIFIC' ,'LOW' ,-22 ,'SCIENTIFIC' ,'LOW' ,7 ,'SCIENTIFIC' ,'LOW' ,14 ,'SCIENTIFIC' ,'LOW' ,15 ,'SCIENTIFIC' ,'LOW' ,-6 ,'SCIENTIFIC' ,'LOW' ,9 ,'SCIENTIFIC' ,'LOW' ,-5 ,'NONE' ,'HIGH' ,-26 ,'NONE' ,'HIGH' ,-1 ,'NONE' ,'HIGH' ,22 ,'NONE' ,'HIGH' ,3 ,'NONE' ,'HIGH' ,-26 ,'NONE' ,'HIGH' ,4 ,'NONE' ,'HIGH' ,-21 ,'NONE' ,'HIGH' ,-19 ,'NONE' ,'HIGH' ,-12 ,'NONE' ,'HIGH' ,9 ,'NONE' ,'HIGH' ,-9 ,'NONE' ,'HIGH' ,-27 ,'NONE' ,'HIGH' ,-10 ,'NONE' ,'HIGH' ,-37 ,'NONE' ,'HIGH' ,0 ,'NONE' ,'HIGH' ,-10 ,'NONE' ,'LOW' ,-12 ,'NONE' ,'LOW' ,-4 ,'NONE' ,'LOW' ,13 ,'NONE' ,'LOW' ,-27 ,'NONE' ,'LOW' ,-7 ,'NONE' ,'LOW' ,-20 ,'NONE' ,'LOW' ,-4 ,'NONE' ,'LOW' ,-10 ,'NONE' ,'LOW' ,-3 ,'NONE' ,'LOW' ,-11 ,'NONE' ,'LOW' ,2 ,'NONE' ,'LOW' ,-9 ,'NONE' ,'LOW' ,20 ,'NONE' ,'LOW' ,9 ,'NONE' ,'LOW' ,-8 ,'NONE' ,'LOW' ,8 ,'NONE' ,'LOW' ,-6 ,'NONE' ,'LOW' ,6) ,dim=c(3 ,97) ,dimnames=list(c('Inst' ,'Exp' ,'R') ,1:97)) y <- array(NA,dim=c(3,97),dimnames=list(c('Inst','Exp','R'),1:97)) for (i in 1:dim(x)[1]) { for (j in 1:dim(x)[2]) { y[i,j] <- as.numeric(x[i,j]) } } par4 = 'TRUE' par3 = '1' par2 = '2' par1 = '3' ylab = 'Y-Axis Title' xlab = 'X-Axis Title' main = 'Chart Title' #'GNU S' R Code compiled by R2WASP v. 1.0.44 () #Author: Dr. Ian E. Holliday #To cite this work: Ian E. Holliday, 2009, YOUR SOFTWARE TITLE (vNUMBER) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_YOURPAGE.wasp/ #Source of accompanying publication: #Technical description: cat1 <- as.numeric(par1) # cat2<- as.numeric(par2) # cat3 <- as.numeric(par3) intercept<-as.logical(par4) x <- t(x) x1<-as.numeric(x[,cat1]) f1<-as.character(x[,cat2]) f2 <- as.character(x[,cat3]) xdf<-data.frame(x1,f1, f2) (V1<-dimnames(y)[[1]][cat1]) (V2<-dimnames(y)[[1]][cat2]) (V3 <-dimnames(y)[[1]][cat3]) mynames<- c(V1, V2, V3) xdf2<-xdf names(xdf2)<-mynames names(xdf)<-c('R', 'A', 'B') mynames <- c(V1, V2, V3) if(intercept == FALSE)eval (substitute(lmout<-lm(xdf$R ~ xdf$A * xdf$B- 1, data = xdf), list(xdf=quote(xdf2),R=mynames[1],A=mynames[2],B=mynames[3]) ))else eval(substitute(lmout<-lm(xdf$R ~ xdf$A * xdf$B, data = xdf), list(xdf=quote(xdf2),R=mynames[1],A=mynames[2],B=mynames[3]) )) oldnames<-names(lmout$coeff) newnames<-gsub('xdf2\\$', '', oldnames) (names(lmout$coeff)<-newnames) (names(lmout$coefficients)<-newnames) #Note: the /var/www/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab load(file="/var/www/rcomp/createtable") a<-table.start() a<-table.row.start(a) a<-table.element(a,'ANOVA Model', length(lmout$coefficients)+1,TRUE) a<-table.row.end(a) a<-table.row.start(a) callstr<-gsub('xdf2\\$', '',as.character(lmout$call$formula)) callstr<-paste(callstr[2], callstr[1], callstr[3]) a<-table.element(a,callstr ,length(lmout$coefficients)+1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'names',,TRUE) for(i in 1:length(lmout$coefficients)){ a<-table.element(a, names(lmout$coefficients[i]),,FALSE) } a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'means',,TRUE) for(i in 1:length(lmout$coefficients)){ a<-table.element(a, round(lmout$coefficients[i], digits=3),,FALSE) } a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/www/rcomp/tmp/1bau41283346205.tab") (aov.xdf<-aov(lmout) ) (anova.xdf<-anova(lmout) ) rownames(anova.xdf)<-gsub('xdf2\\$','',rownames(anova.xdf)) 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, ' ',,TRUE) a<-table.element(a, 'Df',,FALSE) a<-table.element(a, 'Sum Sq',,FALSE) a<-table.element(a, 'Mean Sq',,FALSE) a<-table.element(a, 'F value',,FALSE) a<-table.element(a, 'Pr(>F)',,FALSE) a<-table.row.end(a) for(i in 1 : length(rownames(anova.xdf))-1){ a<-table.row.start(a) a<-table.element(a,rownames(anova.xdf)[i] ,,TRUE) a<-table.element(a, anova.xdf$Df[1],,FALSE) a<-table.element(a, round(anova.xdf$'Sum Sq'[i], digits=3),,FALSE) a<-table.element(a, round(anova.xdf$'Mean Sq'[i], digits=3),,FALSE) a<-table.element(a, round(anova.xdf$'F value'[i], digits=3),,FALSE) a<-table.element(a, round(anova.xdf$'Pr(>F)'[i], digits=3),,FALSE) a<-table.row.end(a) } a<-table.row.start(a) a<-table.element(a, 'Residuals',,TRUE) a<-table.element(a, anova.xdf$'Df'[i+1],,FALSE) a<-table.element(a, round(anova.xdf$'Sum Sq'[i+1], digits=3),,FALSE) a<-table.element(a, round(anova.xdf$'Mean Sq'[i+1], digits=3),,FALSE) a<-table.element(a, ' ',,FALSE) a<-table.element(a, ' ',,FALSE) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/www/rcomp/tmp/272rd1283346205.tab") postscript(file="/var/www/rcomp/tmp/372rd1283346205.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) boxplot(R ~ A + B, data=xdf, xlab=V2, ylab=V1, main='Boxplots of ANOVA Groups',cex.axis=0.7 ) dev.off() postscript(file="/var/www/rcomp/tmp/472rd1283346205.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) xdf2 <- xdf # to preserve xdf make copy for function names(xdf2) <- c(V1, V2, V3) plot.design(xdf2, main='Design Plot of Group Means') dev.off() postscript(file="/var/www/rcomp/tmp/50t9y1283346205.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) interaction.plot(xdf$A, xdf$B, xdf$R, xlab=V2, ylab=V1, trace.label=V3, main='Possible Interactions Between Anova Groups') dev.off() if(intercept==TRUE){ thsd<-TukeyHSD(aov.xdf) names(thsd) <- c(V2, V3, paste(V2, ':', V3, sep='')) postscript(file="/var/www/rcomp/tmp/60t9y1283346205.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) #layout(matrix(c(1,2,3,3), 2,2)) par(mai=c(1,1.5,1,1)) layout(matrix(c(1,2,1,2,3,3,3,3), 2,4)) plot(thsd, las=1) dev.off() } if(intercept==TRUE){ ntables<-length(names(thsd)) a<-table.start() a<-table.row.start(a) a<-table.element(a,'Tukey Honest Significant Difference Comparisons', 5,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, ' ', 1, TRUE) for(i in 1:4){ a<-table.element(a,colnames(thsd[[1]])[i], 1, TRUE) } a<-table.row.end(a) for(nt in 1:ntables){ for(i in 1:length(rownames(thsd[[nt]]))){ a<-table.row.start(a) a<-table.element(a,rownames(thsd[[nt]])[i], 1, TRUE) for(j in 1:4){ a<-table.element(a,round(thsd[[nt]][i,j], digits=3), 1, FALSE) } a<-table.row.end(a) } } # end nt a<-table.end(a) table.save(a,file="/var/www/rcomp/tmp/7w3oo1283346205.tab") }#end if hsd tables if(intercept==FALSE){ a<-table.start() a<-table.row.start(a) a<-table.element(a,'TukeyHSD Message', 1,TRUE) a<-table.row.end(a) a<-table.start() a<-table.row.start(a) a<-table.element(a,'Must Include Intercept to use Tukey Test ', 1, FALSE) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/www/rcomp/tmp/87u6a1283346205.tab") } library(car) lt.lmxdf<-levene.test(lmout) a<-table.start() a<-table.row.start(a) a<-table.element(a,'Levenes Test for Homogeneity of Variance', 4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,' ', 1, TRUE) for (i in 1:3){ a<-table.element(a,names(lt.lmxdf)[i], 1, FALSE) } a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Group', 1, TRUE) for (i in 1:3){ a<-table.element(a,round(lt.lmxdf[[i]][1], digits=3), 1, FALSE) } a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,' ', 1, TRUE) a<-table.element(a,lt.lmxdf[[1]][2], 1, FALSE) a<-table.element(a,' ', 1, FALSE) a<-table.element(a,' ', 1, FALSE) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/www/rcomp/tmp/9avmf1283346205.tab") try(system("convert tmp/372rd1283346205.ps tmp/372rd1283346205.png",intern=TRUE)) try(system("convert tmp/472rd1283346205.ps tmp/472rd1283346205.png",intern=TRUE)) try(system("convert tmp/50t9y1283346205.ps tmp/50t9y1283346205.png",intern=TRUE)) try(system("convert tmp/60t9y1283346205.ps tmp/60t9y1283346205.png",intern=TRUE))