#running R-3.4

library(lme4)
library(languageR)
library(tidyr)
library(dplyr)
library(sjPlot)
library(ggplot2)
library(lmerTest)
library(sjPlot)
library(interplot)
library(beanplot)
#read table
Sem1 <- read.table("Sem_data_perTrial_exp1.txt",header=TRUE)

#type conversion
Sem1$Study <-as.factor(as.character(Sem1$Study))
Sem1$CTX <-as.factor(as.character(Sem1$CTX))
Sem1$actor <-as.factor(as.character(Sem1$actor))
Sem1$item <-as.factor(as.character(Sem1$item))
Sem1$ACC <-as.numeric(as.character(Sem1$ACC))
Sem1$face_d <-as.factor(as.character(Sem1$face_d))
Sem1$length <- as.factor(as.character(Sem1$length))

Sem1$ZDistance <-as.numeric(as.character(Sem1$ZDistance))
Sem1$ZSpace <-as.numeric(as.character(Sem1$ZSpace))
Sem1$ZHoldtime <-as.numeric(as.character(Sem1$ZHoldtime))
Sem1$ZsubsR <-as.numeric(as.character(Sem1$ZsubsR))
Sem1$ZPeakR <-as.numeric(as.character(Sem1$ZPeakR))
Sem1$gaze_total <- as.numeric(as.character(Sem1$gaze_total))
Sem1$RT <- as.numeric(as.character(Sem1$RT))
Sem1$duration_G <-as.numeric(as.character(Sem1$duration_G))
#rescale
Sem1$duration_G <-Sem1$duration_G/1000

#MULTICOLLINEARITY
PredV <- data.frame(Sem1$duration_G,Sem1$gaze_total,Sem1$ZDistance,Sem1$ZSpace,Sem1$ZsubsR,Sem1$ZPeakR,Sem1$ZHoldtime)
corvif(PredV)


Pred <- data.frame(Sem1.MF$duration_G,Sem1.MF$ZSpace,Sem1.MF$ZsubsR,Sem1.MF$ZPeakR,Sem1.MF$ZHoldtime)
corvif(Pred)
#make sure we're only working with complete data (for model comparison)
NAF <- is.na(Sem1$ZDistance)
Sem1.r <- Sem1[NAF==FALSE,]

mean_RT1 <- mean(Sem1.r$RT,na.rm=TRUE)
SD_RT1 <- sd(Sem1.r$RT,na.rm=TRUE)

Out_RT1 <- Sem1.r$RT > mean_RT1+(SD_RT1*2.5)
Sem1.rm <- Sem1.r[Out_RT1 == FALSE,] #remove outlying RTs


#datasets
Sem1.IF <-Sem1.rm[Sem1.rm$length == 1,]
Sem1.MF <- Sem1.rm[Sem1.rm$length == 2,]
Sem1.FV <-Sem1.rm[Sem1.rm$length == 3,]


#####
#STATS
#####
#Main Effects
#RM-ANOVA: ACCURACY
Sem1.rm %>% group_by(pp,length,face_d,CTX) %>% summarise(average_score = mean(ACC,na.rm=T)) -> Sem1_average_accuracy_context #check avg accuracy
library(ez)
Sem1_ezanova.acc <- ezANOVA(
  data = Sem1_average_accuracy_context
  , dv = average_score
  , wid = pp
  , within = .(CTX,length,face_d)
  , return_aov = TRUE
)
print(Sem1_ezanova.acc) #RM-ANOVA results: accuracy


#BEANPLOT: accuracy
beanplot(Sem1_average_accuracy_context$average_score~Sem1_average_accuracy_context$CTX*Sem1_average_accuracy_context$length, ll=0.04, 
         main="Accuracy across video lengths", side="both",
         xlab="Video Length", cex.lab=1.5, ylab = "Accuracy (%)", col = list("lightblue",c("darkgreen","black")),
         axes=F, bw="nrd0",ylim=c(0.5,1.0))
axis(1,at=c(1,2,3), labels=c("Initial","Medium","Full"))
axis(2, at=c(0.5,0.6,0.7,0.8,0.9,1.0), labels=c("50","60","70","80","90","100"))
legend("bottomright",fill = c("lightblue","darkgreen"),
       legend = c("Less-Communicative","More-Communicative"), box.lty=0)

#datasets for contrasts: accuracy
Sem1_average_accuracy_context %>% group_by(pp,length,CTX) %>% summarise(average_score = mean(average_score,na.rm=T)) -> ACCCTX
ACCCTX0 <- ACCCTX[ACCCTX$CTX==0,]
ACCCTX1 <- ACCCTX[ACCCTX$CTX==1,]
ACCCTXL1 <- ACCCTX[ACCCTX$length==1,]
ACCCTX0L1 <- ACCCTX0[ACCCTX0$length==1,]
ACCCTX0L2 <- ACCCTX0[ACCCTX0$length==2,]
ACCCTX0L3 <- ACCCTX0[ACCCTX0$length==3,]
ACCCTX1L1 <- ACCCTX1[ACCCTX1$length==1,]
ACCCTX1L2 <- ACCCTX1[ACCCTX1$length==2,]
ACCCTX1L3 <- ACCCTX1[ACCCTX1$length==3,]

#planned contrasts
var.test(ACCCTX0L1$average_score,ACCCTX1L1$average_score)#check for equal variances
t.test(ACCCTX0L1$average_score,ACCCTX1L1$average_score,var.equal = TRUE, paired=TRUE) #context comparison, initial fragments
var.test(RTCTX0L2$average_score,RTCTX1L2$average_score)#check for equal variances
t.test(ACCCTX0L2$average_score,ACCCTX1L2$average_score, var.equal = TRUE,paired=TRUE) #context comparison, middle fragments
var.test(RTCTX0L3$average_score,RTCTX1L3$average_score)#check for equal variances
t.test(ACCCTX0L3$average_score,ACCCTX1L3$average_score, var.equal = TRUE,paired=TRUE) #context comparison, full fragments


#####
#Main Effects
#RM-ANOVA: RT
Sem1.rm %>% group_by(pp,length,face_d,CTX) %>% summarise(average_score = mean(RT,na.rm=T)) -> Sem1_average_RT_context #check avg accuracy
library(ez)
Sem1_ezanova.RT <- ezANOVA(
  data = Sem1_average_RT_context
  , dv = average_score
  , wid = pp
  , within = .(CTX,length,face_d)
  , return_aov = TRUE
)
print(Sem1_ezanova.RT) #RM-ANOVA results: RT

#datasets for contrasts: RT
Sem1_average_RT_context %>% group_by(pp,length,CTX) %>% summarise(average_score = mean(average_score,na.rm=T)) -> RTCTX
RTCTX0 <- RTCTX[RTCTX$CTX==0,]
RTCTX1 <- RTCTX[RTCTX$CTX==1,]
RTCTXL1 <- RTCTX[RTCTX$length==1,]
RTCTX0L1 <- RTCTX0[RTCTX0$length==1,]
RTCTX0L2 <- RTCTX0[RTCTX0$length==2,]
RTCTX0L3 <- RTCTX0[RTCTX0$length==3,]
RTCTX1L1 <- RTCTX1[RTCTX1$length==1,]
RTCTX1L2 <- RTCTX1[RTCTX1$length==2,]
RTCTX1L3 <- RTCTX1[RTCTX1$length==3,]
#planned contrasts 
var.test(RTCTX0L1$average_score,RTCTX1L1$average_score)#check for equal variances
t.test(RTCTX0L1$average_score,RTCTX1L1$average_score, var.equal = TRUE, paired=TRUE) #context comparison, initial fragments
mean(RTCTX0L1$average_score)#mean IF NC
mean(RTCTX1L1$average_score)#mean IF C

var.test(RTCTX0L2$average_score,RTCTX1L2$average_score)#check for equal variances
t.test(RTCTX0L2$average_score,RTCTX1L2$average_score, var.equal = TRUE,paired=TRUE) #context comparison, middle fragments
mean(RTCTX0L2$average_score)#mean MF NC
mean(RTCTX1L2$average_score)#mean MF C

var.test(RTCTX0L3$average_score,RTCTX1L3$average_score)#check for equal variances
t.test(RTCTX0L3$average_score,RTCTX1L3$average_score,var.equal = TRUE, paired=TRUE) #context comparison, full fragments
mean(RTCTX0L3$average_score)#mean FG NC
mean(RTCTX1L3$average_score)#mean FV C

t.test(Sem1_average_RT_context[Sem1_average_RT_context$length==1,]$average_score,Sem1_average_RT_context[Sem1_average_RT_context$length==2,]$average_score)
t.test(Sem1_average_RT_context[Sem1_average_RT_context$length==2,]$average_score,Sem1_average_RT_context[Sem1_average_RT_context$length==3,]$average_score)


#BEANPLOT: RT
beanplot(Sem1_average_RT_context$average_score~Sem1_average_RT_context$CTX*Sem1_average_RT_context$length, ll=0.04, 
         main="RT across video lengths", side="both",
         xlab="Video Length", ylab="Response Time (s)",cex.lab=1.5,col = list("lightblue",c("darkgreen","black")),
         axes=F, bw="nrd0")
axis(1,at=c(1,2,3), labels=c("Initial","Medium","Full"))
axis(2)
legend("topright",fill = c("lightblue","darkgreen"),
       legend = c("Less-Communicative","More-Communicative"), box.lty=0)

