Importing Data

  1. Convert all transcripts to .txt file format and place them in the same folder.
  2. Import text files into R and create a corpus.
  3. Add document-level variables to corpus
library("quanteda")
library("readtext")
library(dplyr)
library(tidyr)
library(purrr)
library(DT)

#import folder of files
import <- readtext(file="interviewtxt/*.txt") # import all txt files in interviewtxt folder
corpus <- corpus(import) # creates corpus from imported files
summary(corpus)

# add document-level variables (docvars)
# process names
df <- data.frame(names(corpus))
df <- separate(df, col="names.corpus.", into=c("name",NA,"time"), sep="_")
df <- separate(df, col="time", into=c("time",NA), sep=2)
df

tab <- data.frame(table(df$name))
tab$gen <- c("F",
             "F",
             "M",
             "F",
             "F",
             "M",
             "M",
             "F",
             "F",
             "M",
             "F",
             "F",
             "F",
             "M",
             "M",
             "F",
             "F",
             "F",
             "F",
             "F",
             "F",
             "M",
             "F",
             "M",
             "M",
             "F")
colnames(tab) <- c("name","count","gender")
df <- merge(df, tab, by = "name")

# add vars to corpus
docvars(corpus, "name") <- df$name
docvars(corpus, "round") <- df$time
docvars(corpus, "gender") <- df$gender
summary(corpus)

rm(tab,df)

# import LIWC output
liwc_out <- read.delim(file="LIWC_output.txt", header=T)

# add LIWC vars to corpus
summ <- data.frame(summary(corpus)[1])
colnames(summ) <- "Filename"
df <- merge(summ, liwc_out, by = "Filename")

n <- 1
for (i in 1:73) {
  docvars(corpus, colnames(df[n])) <- df[n]
  n <- n + 1
}

rm(i, n, df, summ)
summary <- summary(corpus)

datatable(summary, options = list(dom = 't', scrollX = T, scrollCollapse = T))

Using the Quanteda Package

This package allows for investigation of text in the corpus, but not much quantitative analysis of text content.

Exploring Corpus Text

The kwic() command allows you to identify each time a target word (e.g., ‘engineer’) is used and view the context it occurs in. Full output will provide information about what document the text occurs in and what place in the document the excerpt is from; it’s filtered here to help readability.

# exploring corpus text -- search for a word and view the context
kwic_test <- kwic(corpus, pattern = "engineer", window = 10)
datatable(kwic_test[4:6], options = list(dom = 't', scrollX = T, scrollCollapse = T))

Exploring Word Occurances

Code below lets you identify words/phrases that occur most often in the text and create some visualizations. Allows you to filter out stopwords (can use provided list of words or create your own) and allows stemming.

# create document-feature matrix
# stopwords removed
# trimmed to terms that appear more than 10 times and in at least two documents
corp_test2 <- dfm(corpus, stem=T, remove_punct = T, remove = stopwords("en"))
corp_test3 <- dfm_trim(corp_test2, min_termfreq = 10, min_docfreq = 2)
corp_test4 <- data.frame(corp_test3)
datatable(corp_test4[1:100], options = list(dom = 't', scrollX = T, scrollCollapse = T))
topfeatures(corp_test3, 20, decreasing=T)
##   like   just  class realli     go   yeah  think  engin    one   work 
##   3655   3258   2588   2350   2076   1697   1666   1659   1617   1607 
##    get    lot  thing   know   kind   time  peopl   want  stuff    can 
##   1562   1517   1426   1391   1292   1046    970    969    922    895

Exploring Phrase Occurances

Identifies multi-word strings that appear set number of times (e.g., > 6) in the text.

phrases <- textstat_collocations(corpus, size = 6)
phrases_filt <- subset(phrases, count > 3)

datatable(phrases_filt, options = list(dom = 't', scrollX = T, scrollCollapse = T))

Quantitative Analyses

The textstat_lexdiv() command calculates the lexical diversity (e.g. the variety of words used) in each document. The textstat_keyness() command compares a target document to a reference/document corpus and identifies what words make the target document different from the reference (e.g., we can see what words Adriana is using that differentiate her from the rest of the sample) (note: still reading about keyness, so my understanding of what this command does might change).

lexdiv <- textstat_lexdiv(corp_test3)
datatable(lexdiv, options = list(dom = 't', scrollX = T, scrollCollapse = T))
keyn <- textstat_keyness(corp_test3, target = 1)
textplot_keyness(keyn)

keyn <- textstat_keyness(corp_test3, target = 4)
textplot_keyness(keyn)

Using the LIWC Software

The LIWC analysis is conducted in the proprietary software and the results are exported as a text file. The analysis can be customized in several ways, the current output is using the default settings.

LIWC Output

Raw output from LIWC. Information about each variable created (e.g., WC, Analytic, etc) is available in LIWC manual – will update this document as I get more familiar with the variables.

datatable(liwc_out, options = list(dom = 't', scrollX = T, scrollCollapse = T))

Comparing Text Characteristics by Speaker Gender and Interview Round - MANOVA

Multivariate ANOVA to confirm significant variability when running all dependent variables (the 73 variables created by LIWC) together. Significant results mean that, even when controlling for increased chance of error due to multiple analyses, the univariate results are significant (basically gives you the okay to proceed with individual ANOVAs).

library(afex)

df <- summary(corpus)

# run the MANOVA
Y <- cbind(df$WC, df$Analytic, df$Clout, df$Authentic, df$Tone, df$WPS, df$Sixltr, df$DIC)
gen <- df$gender
rnd <- df$round
mod1 <- manova(Y ~ gen * rnd)

summary(mod1, test="Pillai")
##           Df  Pillai approx F num Df den Df    Pr(>F)    
## gen        1 0.21387   2.3708      7     61   0.03279 *  
## rnd        2 0.56093   3.4524     14    124 9.512e-05 ***
## gen:rnd    2 0.14270   0.6805     14    124   0.78970    
## Residuals 67                                             
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Comparing Text Characteristics by Speaker Gender and Interview Round - Univariate Anovas

Output from all 73 univariate ANOVAs, organized in a table by DV and then IV. Highlighted cells indicate statistical significance.

# run the univariate anovas
n <- 10
uni_aov_output <- data.frame(matrix(ncol = 5, nrow = 0))
for (i in 1:63) {
  out <- nice(aov_ez(id = "Text", dv = colnames(df)[n], data = df, between = c("gender","round"), anova_table = list(es = "pes")))
  x <- 1
  for (i in 1:3) {
    uni_aov_output <- rbind.data.frame(uni_aov_output, c(colnames(df)[n], out$Effect[x], gsub("[^0-9.-]", "", out$F[x]), gsub("[^0-9.-]", "", out$p.value[x]), gsub("[^0-9.-]", "", out$pes[x])), stringsAsFactors = F)
    x <- x + 1
  }
  n <- n + 1
}
x <- c("DV", "IV", "F-test", "p-value", "Partial eta-squared")
colnames(uni_aov_output) <- x

datatable(uni_aov_output) %>%
  formatStyle('p-value', backgroundColor = styleInterval(.05, c('yellow', 'white')))

Comparing Text Characteristics by Speaker Gender and Interview Round - Pairwise Comparisons (e.g., post-hoc tests)

Estimated marginal means for all groups when ANOVA indicates that are significant differences. Some comments provided in the code.

library(emmeans)

mod <- aov_ez(id = "Text", dv = "WC", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean  SE df lower.CL upper.CL
##  R1      3350 349 67     2654     4046
##  R2      5793 353 67     5089     6498
##  R3      4747 353 67     4043     5452
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate  SE df t.ratio p.value
##  R1 - R2     -2443 496 67 -4.924  <.0001 
##  R1 - R3     -1397 496 67 -2.816  0.0173 
##  R2 - R3      1046 499 67  2.096  0.0983 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# significantly fewer words used in round 1 -- might be because of participants who dropped

mod <- aov_ez(id = "Text", dv = "Authentic", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean   SE df lower.CL upper.CL
##  R1      76.0 2.16 67     71.7     80.3
##  R2      70.6 2.18 67     66.3     75.0
##  R3      67.0 2.18 67     62.6     71.3
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate   SE df t.ratio p.value
##  R1 - R2      5.38 3.07 67 1.753   0.1935 
##  R1 - R3      9.02 3.07 67 2.938   0.0124 
##  R2 - R3      3.64 3.09 67 1.179   0.4700 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# round three significantly more authentic than round 1

mod <- aov_ez(id = "Text", dv = "Sixltr", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "gender")
##  gender emmean   SE df lower.CL upper.CL
##  F        15.5 0.26 67     15.0     16.0
##  M        14.2 0.34 67     13.5     14.9
## 
## Results are averaged over the levels of: round 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "gender"))
##  contrast estimate    SE df t.ratio p.value
##  F - M        1.32 0.428 67 3.093   0.0029 
## 
## Results are averaged over the levels of: round
# women use significantly more large words (six letters or more) than men

mod <- aov_ez(id = "Text", dv = "Dic", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      92.1 0.296 67     91.5     92.7
##  R2      93.6 0.300 67     93.0     94.2
##  R3      93.3 0.300 67     92.7     93.9
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    -1.459 0.421 67 -3.462  0.0027 
##  R1 - R3    -1.200 0.421 67 -2.847  0.0159 
##  R2 - R3     0.259 0.424 67  0.611  0.8145 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# significantly more dictionary words used in R2 than R1, significantly more dictionary words used in R3 than R1

mod <- aov_ez(id = "Text", dv = "i", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      7.59 0.343 67     6.90     8.27
##  R2      6.67 0.347 67     5.98     7.36
##  R3      6.37 0.347 67     5.68     7.06
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2     0.919 0.488 67 1.882   0.1517 
##  R1 - R3     1.220 0.488 67 2.499   0.0391 
##  R2 - R3     0.301 0.491 67 0.613   0.8137 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# 'i' used more often in R1 than R3

mod <- aov_ez(id = "Text", dv = "shehe", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1     0.601 0.117 67    0.368    0.835
##  R2     1.137 0.118 67    0.901    1.373
##  R3     1.180 0.118 67    0.944    1.417
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2   -0.5355 0.166 67 -3.216  0.0056 
##  R1 - R3   -0.5788 0.166 67 -3.477  0.0025 
##  R2 - R3   -0.0433 0.167 67 -0.259  0.9638 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# 'he/she' used significantly less in R1 than R2, and less in R1 than R3

mod <- aov_ez(id = "Text", dv = "auxverb", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      10.5 0.195 67     10.1     10.8
##  R2      11.2 0.197 67     10.8     11.6
##  R3      10.9 0.197 67     10.5     11.3
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    -0.712 0.277 67 -2.571  0.0327 
##  R1 - R3    -0.480 0.277 67 -1.734  0.2002 
##  R2 - R3     0.232 0.279 67  0.832  0.6846 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# auxillary verbs used significantly less in R1 than R2

mod <- aov_ez(id = "Text", dv = "interrog", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "gender")
##  gender emmean     SE df lower.CL upper.CL
##  F        1.92 0.0609 67     1.80     2.04
##  M        1.69 0.0794 67     1.53     1.85
## 
## Results are averaged over the levels of: round 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "gender"))
##  contrast estimate  SE df t.ratio p.value
##  F - M       0.229 0.1 67 2.287   0.0253 
## 
## Results are averaged over the levels of: round
# women used significantly more interrogatives than men

mod <- aov_ez(id = "Text", dv = "number", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      1.70 0.135 67     1.43     1.97
##  R2      1.93 0.137 67     1.66     2.21
##  R3      2.42 0.137 67     2.15     2.69
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    -0.232 0.193 67 -1.206  0.4539 
##  R1 - R3    -0.719 0.193 67 -3.734  0.0011 
##  R2 - R3    -0.487 0.194 67 -2.513  0.0378 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# numbers used significantly more in R3 than R1, and in R3 than R2

mod <- aov_ez(id = "Text", dv = "negemo", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1     0.510 0.0588 67    0.393    0.627
##  R2     0.882 0.0595 67    0.763    1.000
##  R3     0.796 0.0595 67    0.677    0.914
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate     SE df t.ratio p.value
##  R1 - R2   -0.3716 0.0837 67 -4.441  0.0001 
##  R1 - R3   -0.2857 0.0837 67 -3.414  0.0031 
##  R2 - R3    0.0859 0.0842 67  1.020  0.5667 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# significantly fewer negative emotion words used in R1 than R2 and R3

mod <- aov_ez(id = "Text", dv = "anx", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1    0.0763 0.0205 67   0.0354    0.117
##  R2    0.1861 0.0208 67   0.1447    0.228
##  R3    0.1732 0.0208 67   0.1318    0.215
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate     SE df t.ratio p.value
##  R1 - R2   -0.1098 0.0292 67 -3.761  0.0010 
##  R1 - R3   -0.0969 0.0292 67 -3.319  0.0041 
##  R2 - R3    0.0129 0.0294 67  0.439  0.8994 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# anx words significantly lower in R1 than R2 and R3

mod <- aov_ez(id = "Text", dv = "sad", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1    0.0884 0.0210 67   0.0466    0.130
##  R2    0.1892 0.0212 67   0.1469    0.232
##  R3    0.1756 0.0212 67   0.1332    0.218
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate     SE df t.ratio p.value
##  R1 - R2   -0.1008 0.0298 67 -3.379  0.0034 
##  R1 - R3   -0.0871 0.0298 67 -2.921  0.0130 
##  R2 - R3    0.0137 0.0300 67  0.456  0.8921 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# significantly fewer sad words in R1 than R2 and R3

mod <- aov_ez(id = "Text", dv = "social", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      7.54 0.309 67     6.93     8.16
##  R2      8.54 0.312 67     7.91     9.16
##  R3      8.43 0.312 67     7.81     9.05
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    -0.993 0.439 67 -2.262  0.0684 
##  R1 - R3    -0.887 0.439 67 -2.019  0.1154 
##  R2 - R3     0.106 0.442 67  0.241  0.9685 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
mod <- aov_ez(id = "Text", dv = "family", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1    0.3197 0.0261 67   0.2675    0.372
##  R2    0.1222 0.0264 67   0.0694    0.175
##  R3    0.0832 0.0264 67   0.0304    0.136
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate     SE df t.ratio p.value
##  R1 - R2     0.197 0.0372 67 5.310   <.0001 
##  R1 - R3     0.236 0.0372 67 6.359   <.0001 
##  R2 - R3     0.039 0.0374 67 1.043   0.5528 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
mod <- aov_ez(id = "Text", dv = "friend", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1     0.180 0.0265 67    0.127    0.233
##  R2     0.279 0.0269 67    0.226    0.333
##  R3     0.198 0.0269 67    0.145    0.252
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate     SE df t.ratio p.value
##  R1 - R2   -0.0988 0.0378 67 -2.618  0.0291 
##  R1 - R3   -0.0180 0.0378 67 -0.475  0.8831 
##  R2 - R3    0.0809 0.0380 67  2.130  0.0914 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
mod <- aov_ez(id = "Text", dv = "female", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "gender", by = "round")
## round = R1:
##  gender emmean     SE df lower.CL upper.CL
##  F       0.378 0.0834 67  0.21168    0.545
##  M       0.188 0.1112 67 -0.03415    0.410
## 
## round = R2:
##  gender emmean     SE df lower.CL upper.CL
##  F       0.199 0.0861 67  0.02676    0.371
##  M       0.504 0.1112 67  0.28252    0.726
## 
## round = R3:
##  gender emmean     SE df lower.CL upper.CL
##  F       0.177 0.0861 67  0.00476    0.349
##  M       0.243 0.1112 67  0.02140    0.465
## 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "gender", by = "round"))
## round = R1:
##  contrast estimate    SE df t.ratio p.value
##  F - M      0.1903 0.139 67  1.370  0.1754 
## 
## round = R2:
##  contrast estimate    SE df t.ratio p.value
##  F - M     -0.3058 0.141 67 -2.174  0.0332 
## 
## round = R3:
##  contrast estimate    SE df t.ratio p.value
##  F - M     -0.0667 0.141 67 -0.474  0.6370
# women used 'female' word/s more often than men, but only in R2

mod <- aov_ez(id = "Text", dv = "male", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1     0.584 0.102 67    0.381    0.787
##  R2     0.976 0.103 67    0.771    1.182
##  R3     1.130 0.103 67    0.925    1.336
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    -0.393 0.145 67 -2.710  0.0229 
##  R1 - R3    -0.547 0.145 67 -3.773  0.0010 
##  R2 - R3    -0.154 0.146 67 -1.057  0.5441 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# 'male' word/s used less often in R1 than R2 and R3

mod <- aov_ez(id = "Text", dv = "tentat", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      3.35 0.148 67     3.05     3.64
##  R2      3.81 0.150 67     3.51     4.11
##  R3      4.00 0.150 67     3.70     4.29
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    -0.466 0.211 67 -2.211  0.0765 
##  R1 - R3    -0.649 0.211 67 -3.081  0.0083 
##  R2 - R3    -0.183 0.212 67 -0.864  0.6646 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
mod <- aov_ez(id = "Text", dv = "differ", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "gender")
##  gender emmean     SE df lower.CL upper.CL
##  F        4.66 0.0999 67     4.46     4.86
##  M        4.29 0.1303 67     4.03     4.55
## 
## Results are averaged over the levels of: round 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "gender"))
##  contrast estimate    SE df t.ratio p.value
##  F - M       0.373 0.164 67 2.274   0.0262 
## 
## Results are averaged over the levels of: round
mod <- aov_ez(id = "Text", dv = "achieve", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1      1.74 0.0759 67     1.59     1.89
##  R2      1.54 0.0768 67     1.38     1.69
##  R3      1.83 0.0768 67     1.67     1.98
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2    0.2027 0.108 67  1.878  0.1530 
##  R1 - R3   -0.0879 0.108 67 -0.815  0.6953 
##  R2 - R3   -0.2907 0.109 67 -2.677  0.0250 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
# achieve used significantly more in R2 than R3

mod <- aov_ez(id = "Text", dv = "risk", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean     SE df lower.CL upper.CL
##  R1     0.235 0.0367 67    0.162    0.309
##  R2     0.395 0.0371 67    0.320    0.469
##  R3     0.358 0.0371 67    0.284    0.432
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate     SE df t.ratio p.value
##  R1 - R2   -0.1591 0.0522 67 -3.049  0.0091 
##  R1 - R3   -0.1227 0.0522 67 -2.351  0.0557 
##  R2 - R3    0.0364 0.0525 67  0.694  0.7677 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
mod <- aov_ez(id = "Text", dv = "focuspast", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean    SE df lower.CL upper.CL
##  R1      6.74 0.263 67     6.21     7.26
##  R2      5.60 0.266 67     5.07     6.13
##  R3      4.87 0.266 67     4.33     5.40
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate    SE df t.ratio p.value
##  R1 - R2     1.137 0.374 67 3.040   0.0093 
##  R1 - R3     1.871 0.374 67 5.002   <.0001 
##  R2 - R3     0.734 0.376 67 1.950   0.1327 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates
mod <- aov_ez(id = "Text", dv = "WC", data = df, between = c("gender","round"), anova_table = list(es = "pes"))
emmeans(mod, specs = "round")
##  round emmean  SE df lower.CL upper.CL
##  R1      3350 349 67     2654     4046
##  R2      5793 353 67     5089     6498
##  R3      4747 353 67     4043     5452
## 
## Results are averaged over the levels of: gender 
## Confidence level used: 0.95
pairs(emmeans(mod, specs = "round"))
##  contrast estimate  SE df t.ratio p.value
##  R1 - R2     -2443 496 67 -4.924  <.0001 
##  R1 - R3     -1397 496 67 -2.816  0.0173 
##  R2 - R3      1046 499 67  2.096  0.0983 
## 
## Results are averaged over the levels of: gender 
## P value adjustment: tukey method for comparing a family of 3 estimates