--- output: html_document: fig_height: 3 fig_width: 3.5 keep_md: yes --- See the Rmd file here: https://raw.githubusercontent.com/ralfer/apa_format_and_misc/master/example/example.Rmd ```{r, cache=F} library(apastats) load.libs(c('data.table','knitr')) opts_chunk$set(message=F) ``` ```{r} t_res<-t.test(rnorm(20, mean = 10, sd=2)) t_res ``` One sample Student's t-test demonstrated that X significantly higher than zero, `r describe.ttest(t_res)`. ```{r} data("sleep") describe.mean.and.t(sleep$extra, sleep$group, which.mean = 3, paired=T) ``` Student's t-test showed that increase in hours of sleep compared to control was lower in group 1 than in group 2, `r with(sleep, describe.mean.and.t( extra, group,which.mean = 3, paired=T))`. ```{r} require(MASS) glm_res<-glm(Freq ~ (Age+Sex)*Survived, family = poisson, data = data.frame(Titanic)) describe.glm(glm_res) lm_res<-lm(Postwt ~ Prewt + Treat + offset(Prewt), anorexia) describe.glm(lm_res) ``` ```{r} describe.glm(glm_res, "SexFemale:SurvivedYes", dtype=1) describe.glm(glm_res, "SexFemale:SurvivedYes", dtype=2) describe.glm(glm_res, "SexFemale:SurvivedYes", dtype=3) describe.glm(glm_res, "SexFemale:SurvivedYes", dtype=3, test.df=T) ``` Adults had lower chances of survival on Titanic than children, `r describe.glm(glm_res, "AgeAdult:SurvivedYes")`, and women had higher chances than men, `r describe.glm(glm_res, "SexFemale:SurvivedYes", dtype=3)`. ```{r} require(ez) data(ANT) rt_anova = ezANOVA( data = ANT[ANT$error==0,] , dv = rt , wid = subnum , within = .(cue,flank) , between = group ) rt_anova ``` Repeated measures ANOVA demonstrated a significant influence of cue on RT, `r describe.ezanova(rt_anova, 'cue')`. ### Plotting pointrange plots You can plot within-subject CIs with the help of summarySEwithin from http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_%28ggplot2%29/ ```{r, pointrange_plots, message=F, cache=F} require(nlme) require(gridExtra) data(ergoStool) p1<-plot.pointrange(ergoStool, aes(x=Type, y=effort))+ggtitle('Usual CIs') p2<-plot.pointrange(ergoStool, aes(x=Type, y=effort), within_subj=T, wid='Subject')+ggtitle('Within-subject CIs') grid.arrange(p1, p2, ncol=2) ``` ### Showing log-transformed data back untransformed Sometimes it is useful to analyze data log-transformed (e.g., in reaction time analyses), but to show it untransformed. _scale_y_exp_ comes in handy. ```{r} library(scales) temp <- tempfile() download.file("http://cogjournal.org/2/1/files/ChetverikovRJCS2015SOMdata.zip",temp) faces <- data.table(read.csv(unz(temp, "faces_data.csv"), header = T)) unlink(temp) faces[,logAT:=log(answerTime)] p0<-plot.pointrange(faces[correct==1, ], aes(x=user_gender, color=stim_gender, y=logAT), wid='uid')+ylab('Log RT') p0 p1<-plot.pointrange(faces[correct==1, ], aes(x=user_gender, color=stim_gender, y=logAT), wid='uid')+scale_y_exp(digits=2)+labs(x="Participant's gender", color="Face Gender", y='Untransformed RT') p1 ``` ### Sharing legend and axis title between plots It is not very easy to share legend or axis title between plots. I modified a function from https://github.com/hadley/ggplot2/wiki/Share-a-legend-between-two-ggplot2-graphs to make it easier. ```{r, cache=F} p2<-plot.pointrange(faces, aes(x=user_gender, color=stim_gender, y=correct), wid='uid')+labs(x="Participant's gender", color="Face Gender" ,y='Accuracy') p2 ``` ```{r, fig.height=7} grid_arrange_shared_legend(p1 + theme(legend.direction="horizontal"),p2) ``` ```{r, fig.width=7} grid_arrange_shared_legend(p1, p2, stack = 'horizontal') grid_arrange_shared_legend(p1, p2, stack = 'horizontal', one_sub = T) ```