Setup

Import some packages.

library(flextable)

library(tidyverse)
library(broom)

Copy over the table formatting function.

# turn dataframe into html table
formatAsTable <- function(data) {
  data %>%
    mutate(across(where(is.double), ~ round(., 3))) %>%
    flextable %>%
    color(color = "white", part = "all")
}

Import the data and look at the top three rows.

chks <- read_csv(file.path("..", "data", "clean-data.csv")) %>%
  select(c(interdep, disclose, intcheck, discheck))

chks %>%
  head(3) %>%
  formatAsTable %>%
  autofit

Clean up data for the analyses.

scale_order <- c("Strongly agree",
                 "Somewhat agree",
                 "Neither agree nor disagree",
                 "Somewhat disagree",
                 "Strongly disagree")

scale_key <- 5:1 %>%
  set_names(scale_order)

chks <- chks %>%
  mutate(across(ends_with("check"),
                ~ factor(., scale_order, ordered = T),
                .names = "{col}.f")) %>%
  mutate(across(ends_with("check"),
                ~ recode(., !!!scale_key))) %>%
  mutate(discor = ifelse(disclose == 0,
                         discheck < 3,
                         discheck > 3),
         intcor = ifelse(interdep == 0,
                         intcheck < 3,
                         intcheck > 3)) %>%
  mutate(correct = discor & intcor) %>%
  filter(!is.na(intcheck))

Frequency tables

How many respondents clicked each scale option in each condition?

chks %>%
  count(interdep, intcheck.f) %>%
  arrange(interdep, desc(intcheck.f)) %>%
  formatAsTable %>%
  autofit %>%
  bg(bg = "#074005",
     i = ~ ifelse(interdep == 0,
                  scale_key[intcheck.f] < 3,
                  scale_key[intcheck.f] > 3))
chks %>%
  count(disclose, discheck.f) %>%
  arrange(disclose, desc(discheck.f)) %>%
  formatAsTable %>%
  autofit %>%
  bg(bg = "#074005",
     i = ~ ifelse(disclose == 0,
                  scale_key[discheck.f] < 3,
                  scale_key[discheck.f] > 3))

Exactly 355 of 444 participants, or 80%, responded to both manipulation checks correctly.

Regressions

Is there a significant relationship between the manipulation and the manipulation checks?

intfit <- lm(intcheck ~ interdep, chks)
tidy(intfit) %>%
  formatAsTable
disfit <- lm(discheck ~ disclose, chks)
tidy(disfit) %>%
  formatAsTable

Output document:

options(knitr.duplicate.label = "allow")
rmarkdown::render("manipulations.Rmd",
                  output_dir = file.path("..", "github", "thesis"))