In these analyses, we test correlational associations between self and social relevance and broad- and narrowcast sharing intentions in a subset of data in which the correlations between self and social relevance are lower.
First, we load the relevant packages and data, and define the plotting aesthetics.
if (!require(tidyverse)) {
install.packages('tidyverse')
}
if (!require(knitr)) {
install.packages('knitr')
}
if (!require(kableExtra)) {
install.packages('kableExtra')
}
if (!require(lmerTest)) {
install.packages('lmerTest')
}
if (!require(report)) {
install.packages('report')
}
report::cite_packages()
## - Douglas Bates and Martin Maechler (2021). Matrix: Sparse and Dense Matrix Classes and Methods. R package version 1.3-4. https://CRAN.R-project.org/package=Matrix
## - Douglas Bates, Martin Maechler, Ben Bolker, Steve Walker (2015). Fitting Linear Mixed-Effects Models Using lme4. Journal of Statistical Software, 67(1), 1-48. doi:10.18637/jss.v067.i01.
## - H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2016.
## - Hadley Wickham (2019). stringr: Simple, Consistent Wrappers for Common String Operations. R package version 1.4.0. https://CRAN.R-project.org/package=stringr
## - Hadley Wickham (2021). forcats: Tools for Working with Categorical Variables (Factors). R package version 0.5.1. https://CRAN.R-project.org/package=forcats
## - Hadley Wickham (2021). tidyr: Tidy Messy Data. R package version 1.1.4. https://CRAN.R-project.org/package=tidyr
## - Hadley Wickham, Jim Hester and Jennifer Bryan (2021). readr: Read Rectangular Text Data. R package version 2.1.1. https://CRAN.R-project.org/package=readr
## - Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.7. https://CRAN.R-project.org/package=dplyr
## - Hao Zhu (2021). kableExtra: Construct Complex Table with 'kable' and Pipe Syntax. R package version 1.3.4. https://CRAN.R-project.org/package=kableExtra
## - Kirill Müller and Hadley Wickham (2021). tibble: Simple Data Frames. R package version 3.1.6. https://CRAN.R-project.org/package=tibble
## - Kuznetsova A, Brockhoff PB, Christensen RHB (2017). "lmerTest Package:Tests in Linear Mixed Effects Models." _Journal of StatisticalSoftware_, *82*(13), 1-26. doi: 10.18637/jss.v082.i13 (URL:https://doi.org/10.18637/jss.v082.i13).
## - Lionel Henry and Hadley Wickham (2020). purrr: Functional Programming Tools. R package version 0.3.4. https://CRAN.R-project.org/package=purrr
## - Makowski, D., Ben-Shachar, M.S., Patil, I. & Lüdecke, D. (2020). Automated Results Reporting as a Practical Tool to Improve Reproducibility and Methodological Best Practices Adoption. CRAN. Available from https://github.com/easystats/report. doi: .
## - R Core Team (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
## - Wickham et al., (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686, https://doi.org/10.21105/joss.01686
## - Yihui Xie (2021). knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.37.
palette = c("#001219", "#005F73", "#0A9396", "#94D2BD", "#E9D8A6", "#EE9B00", "#CA6702", "#BB3E03", "#AE2012")
palette_sharing = c("#0a9396", "#EE9B00")
palette_study = c("#001219", "#005F73", "#94D2BD", "#E9D8A6", "#EE9B00", "#AE2012")
plot_aes = theme_minimal() +
theme(legend.position = "top",
legend.text = element_text(size = 12),
text = element_text(size = 16, family = "Futura Medium"),
axis.text = element_text(color = "black"),
axis.line = element_line(colour = "black"),
axis.ticks.y = element_blank())
# cleaned study data
study1 = read.csv("../data/study1.csv", stringsAsFactors = FALSE)
study2 = read.csv("../data/study2.csv", stringsAsFactors = FALSE)
study3 = read.csv("../data/study3.csv", stringsAsFactors = FALSE)
study4 = read.csv("../data/study4.csv", stringsAsFactors = FALSE)
study5 = read.csv("../data/study5.csv", stringsAsFactors = FALSE)
study6 = read.csv("../data/study6.csv", stringsAsFactors = FALSE) %>%
select(-article_cond)
# merge dataframes and z-score within study and sharing type
merged = bind_rows(study1, study2, study3, study4, study5, study6) %>%
group_by(study, sharing_type) %>%
mutate(msg_share_std = scale(msg_share, scale = TRUE, center = TRUE))
In these analyses, select a subset of messages that have correlations between self and social relevance < .7.
Describe the correlations between self and social relevance by study and content type.
cors_spread = merged %>%
ungroup() %>%
select(study, item, msg_rel_self, msg_rel_social) %>%
unique()
cors = cors_spread %>%
nest(-c(study, item)) %>%
mutate(test = map(data, possibly(~ cor.test(.$msg_rel_self, .$msg_rel_social), otherwise = NULL))) %>%
filter(!test == "NULL") %>%
mutate(coefs = map(test,
broom::tidy,
conf.int = TRUE,
conf.level = .95)) %>%
unnest(coefs, .drop = TRUE) %>%
mutate_if(is.numeric, round, 2)
cors %>%
group_by(study) %>%
summarize(`mean correlation` = mean(estimate, na.rm = TRUE),
`sd correlation` = sd(estimate, na.rm = TRUE),
min = min(estimate, na.rm = TRUE),
max = max(estimate, na.rm = TRUE)) %>%
mutate(`range correlation` = sprintf("%.2f, %.2f", min, max)) %>%
select(-min, -max) %>%
kable(digits = 2) %>%
kableExtra::kable_styling()
study | mean correlation | sd correlation | range correlation |
---|---|---|---|
study 1 | 0.56 | 0.23 | -0.12, 1.00 |
study 2 | 0.64 | 0.12 | 0.48, 0.82 |
study 3 | 0.63 | 0.14 | 0.39, 0.80 |
study 4 | 0.56 | 0.26 | -0.18, 0.95 |
study 5 | 0.78 | 0.15 | 0.28, 0.95 |
study 6 | 0.75 | 0.15 | 0.23, 0.95 |
message_content = merged %>%
ungroup() %>%
select(study, item, content) %>%
unique()
cors %>%
left_join(., message_content) %>%
group_by(study, content) %>%
summarize(`mean correlation` = mean(estimate, na.rm = TRUE),
`sd correlation` = sd(estimate, na.rm = TRUE),
min = min(estimate, na.rm = TRUE),
max = max(estimate, na.rm = TRUE)) %>%
mutate(`range correlation` = sprintf("%.2f, %.2f", min, max)) %>%
select(-min, -max) %>%
kable(digits = 2) %>%
kableExtra::kable_styling()
study | content | mean correlation | sd correlation | range correlation |
---|---|---|---|---|
study 1 | covid | 0.56 | 0.23 | -0.12, 1.00 |
study 2 | voting | 0.64 | 0.12 | 0.48, 0.82 |
study 3 | voting | 0.63 | 0.14 | 0.39, 0.80 |
study 4 | health | 0.56 | 0.26 | -0.18, 0.95 |
study 5 | climate | 0.84 | 0.11 | 0.43, 0.95 |
study 5 | covid | 0.73 | 0.17 | 0.28, 0.95 |
study 6 | climate | 0.82 | 0.09 | 0.61, 0.95 |
study 6 | health | 0.67 | 0.16 | 0.23, 0.88 |
This plot is reported in supplementary material Figure S1.
cors %>%
arrange(study, item) %>%
mutate(item = row_number(),
V1 = sprintf("self_%s", row_number()),
V2 = sprintf("social_%s", row_number())) %>%
ggplot(aes(item, estimate, color = study)) +
geom_point() +
geom_hline(yintercept = .7) +
scale_color_manual(values = palette_study) +
labs(x = "\nmessage number", y = "correlation between\nself and social relevance\n") +
plot_aes +
theme(legend.text = element_text(size = 11))
data_lower_cors = cors %>%
filter(estimate < .7)
total_n = merged %>%
ungroup() %>%
select(study, item) %>%
unique() %>%
group_by(study) %>%
summarize(`total n` = n())
data_lower_cors %>%
group_by(study) %>%
summarize(n = n()) %>%
left_join(., total_n) %>%
mutate(percent = (n / `total n`) * 100) %>%
kable(digits = 2) %>%
kableExtra::kable_styling()
study | n | total n | percent |
---|---|---|---|
study 1 | 67 | 92 | 72.83 |
study 2 | 10 | 15 | 66.67 |
study 3 | 6 | 10 | 60.00 |
study 4 | 52 | 80 | 65.00 |
study 5 | 25 | 110 | 22.73 |
study 6 | 34 | 110 | 30.91 |
Estimate the mega-analysis model in the downsampled dataset.
data_downsample = merged %>%
filter(item %in% data_lower_cors$item)
model = lmerTest::lmer(msg_share_std ~ 0 + msg_rel_self_between*sharing_type +
msg_rel_self_within*sharing_type +
msg_rel_social_between*sharing_type +
msg_rel_social_within*sharing_type +
(1 + msg_rel_self_within + msg_rel_social_within | SID) +
(1 + msg_rel_self_within + msg_rel_social_within | item),
data = data_downsample,
control = lmerControl(optimizer = "bobyqa"))
summary(model)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula:
## msg_share_std ~ 0 + msg_rel_self_between * sharing_type + msg_rel_self_within *
## sharing_type + msg_rel_social_between * sharing_type + msg_rel_social_within *
## sharing_type + (1 + msg_rel_self_within + msg_rel_social_within |
## SID) + (1 + msg_rel_self_within + msg_rel_social_within | item)
## Data: data_downsample
## Control: lmerControl(optimizer = "bobyqa")
##
## REML criterion at convergence: 35203.1
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -4.9599 -0.4382 0.0210 0.4450 5.5061
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## SID (Intercept) 0.402033 0.63406
## msg_rel_self_within 0.021761 0.14752 0.11
## msg_rel_social_within 0.018463 0.13588 0.21 -0.12
## item (Intercept) 0.005053 0.07108
## msg_rel_self_within 0.006969 0.08348 -0.26
## msg_rel_social_within 0.001401 0.03742 0.02 -0.07
## Residual 0.225145 0.47449
## Number of obs: 18522, groups: SID, 3669; item, 193
##
## Fixed effects:
## Estimate Std. Error df
## msg_rel_self_between 0.340424 0.020269 3683.115288
## sharing_type 0.018225 0.011811 12764.560436
## msg_rel_self_within 0.184613 0.010249 136.370986
## msg_rel_social_between 0.183350 0.020199 3653.760626
## msg_rel_social_within 0.128229 0.007972 77.552518
## msg_rel_self_between:sharing_type -0.061184 0.021311 12786.351086
## sharing_type:msg_rel_self_within -0.055172 0.013226 5772.550970
## sharing_type:msg_rel_social_between 0.081005 0.021510 12780.835894
## sharing_type:msg_rel_social_within 0.119355 0.013566 3203.957771
## t value Pr(>|t|)
## msg_rel_self_between 16.796 < 0.0000000000000002 ***
## sharing_type 1.543 0.122825
## msg_rel_self_within 18.013 < 0.0000000000000002 ***
## msg_rel_social_between 9.077 < 0.0000000000000002 ***
## msg_rel_social_within 16.085 < 0.0000000000000002 ***
## msg_rel_self_between:sharing_type -2.871 0.004099 **
## sharing_type:msg_rel_self_within -4.171 0.0000307 ***
## sharing_type:msg_rel_social_between 3.766 0.000167 ***
## sharing_type:msg_rel_social_within 8.798 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## msg_rl_slf_b shrng_ msg_rl_slf_w msg_rl_scl_b
## sharing_typ -0.004
## msg_rl_slf_w -0.014 -0.021
## msg_rl_scl_b -0.826 0.004 0.015
## msg_rl_scl_w 0.013 0.030 -0.316 -0.021
## msg_rl_s_:_ -0.117 0.047 0.017 0.095
## shrng_typ:msg_rl_sl_ 0.008 0.077 -0.242 -0.009
## shrng_typ:msg_rl_scl_b 0.094 -0.058 -0.017 -0.117
## shrng_typ:msg_rl_scl_w -0.008 -0.096 0.123 0.007
## msg_rl_scl_w m___:_ shrng_typ:msg_rl_sl_
## sharing_typ
## msg_rl_slf_w
## msg_rl_scl_b
## msg_rl_scl_w
## msg_rl_s_:_ -0.023
## shrng_typ:msg_rl_sl_ 0.153 -0.083
## shrng_typ:msg_rl_scl_b 0.016 -0.832 0.079
## shrng_typ:msg_rl_scl_w -0.280 0.089 -0.533
## shrng_typ:msg_rl_scl_b
## sharing_typ
## msg_rl_slf_w
## msg_rl_scl_b
## msg_rl_scl_w
## msg_rl_s_:_
## shrng_typ:msg_rl_sl_
## shrng_typ:msg_rl_scl_b
## shrng_typ:msg_rl_scl_w -0.063
## msg_rel_self_between sharing_type
## 3.199216 1.014738
## msg_rel_self_within msg_rel_social_between
## 1.168057 3.200107
## msg_rel_social_within msg_rel_self_between:sharing_type
## 1.193963 3.323822
## sharing_type:msg_rel_self_within sharing_type:msg_rel_social_between
## 1.472621 3.318682
## sharing_type:msg_rel_social_within
## 1.502671
This plot is reported in supplementary material Figure S2.
predicted = ggeffects::ggpredict(model, c("msg_rel_self_between [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "self_between") %>%
bind_rows(ggeffects::ggpredict(model, c("msg_rel_self_within [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "self_within")) %>%
bind_rows(ggeffects::ggpredict(model, c("msg_rel_social_between [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "social_between")) %>%
bind_rows(ggeffects::ggpredict(model, c("msg_rel_social_within [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "social_within"))
points = data_downsample %>%
select(-group) %>%
rename("group" = sharing_type,
"predicted" = msg_share_std) %>%
select(study, SID, group, predicted, contains("within"), contains("between")) %>%
gather(type, x, contains("msg")) %>%
mutate(type = gsub("msg_rel_", "", type),
group = ifelse(group == 0, "broadcast", "narrowcast")) %>%
extract(type, c("variable", "type"), "(.*)_(.*)") %>%
filter(x < 3 & x > -3)
predicted %>%
mutate(group = ifelse(group == 0, "broadcast", "narrowcast")) %>%
extract(type, c("variable", "type"), "(.*)_(.*)") %>%
ggplot(aes(x, predicted, color = group, fill = group, linetype = type)) +
geom_point(data = points, aes(x, predicted), alpha = .02, size = .25) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = .2, color = NA) +
geom_line(size = 1) +
facet_grid(~variable) +
scale_color_manual(name = "", values = palette_sharing) +
scale_fill_manual(name = "", values = palette_sharing) +
scale_linetype_manual(name = "", values = c("solid", "dashed")) +
guides(linetype = guide_legend(override.aes = list(fill = NA))) +
labs(x = "\nstandardized relevance rating", y = "predicted standardized sharing intention rating\n") +
plot_aes +
theme(legend.position = "top",
legend.key.width=unit(2,"cm"))
model %>%
broom.mixed::tidy(conf.int = TRUE) %>%
filter(effect == "fixed") %>%
rename("SE" = std.error,
"t" = statistic,
"p" = p.value) %>%
select(-group, -effect) %>%
mutate_at(vars(-contains("term"), -contains("p.value")), round, 2) %>%
mutate(term = gsub(":", " x ", term),
term = gsub("msg_", "", term),
term = gsub("_", " ", term),
term = gsub("within", "within", term),
term = gsub("between", "between", term),
term = gsub("rel self", "self relevance", term),
term = gsub("rel social", "social relevance", term),
term = gsub("sharing type", "sharing type (narrowcast)", term),
p = ifelse(p < .001, "< .001",
ifelse(p == 1, "1.000", gsub("0.(.*)", ".\\1", sprintf("%.3f", p)))),
`b [95% CI]` = sprintf("%.2f [%0.2f, %.2f]", estimate, conf.low, conf.high)) %>%
select(term, `b [95% CI]`, df, t, p) %>%
kable() %>%
kableExtra::kable_styling()
term | b [95% CI] | df | t | p |
---|---|---|---|---|
self relevance between | 0.34 [0.30, 0.38] | 3683.12 | 16.80 | < .001 |
sharing type (narrowcast) | 0.02 [-0.00, 0.04] | 12764.56 | 1.54 | .120 |
self relevance within | 0.18 [0.16, 0.20] | 136.37 | 18.01 | < .001 |
social relevance between | 0.18 [0.14, 0.22] | 3653.76 | 9.08 | < .001 |
social relevance within | 0.13 [0.11, 0.14] | 77.55 | 16.08 | < .001 |
self relevance between x sharing type (narrowcast) | -0.06 [-0.10, -0.02] | 12786.35 | -2.87 | < .001 |
sharing type (narrowcast) x self relevance within | -0.06 [-0.08, -0.03] | 5772.55 | -4.17 | < .001 |
sharing type (narrowcast) x social relevance between | 0.08 [0.04, 0.12] | 12780.84 | 3.77 | < .001 |
sharing type (narrowcast) x social relevance within | 0.12 [0.09, 0.15] | 3203.96 | 8.80 | < .001 |
In these analyses, select a subset of people that have correlations between self and social relevance < .7.
Because participants tended to only rate a few messages, this approach to downsampling is likely more unstable. Therefore, these analyses are supplementary and not reported in the manuscript.
Describe the correlations between self and social relevance by study and content type.
cors_spread = merged %>%
ungroup() %>%
select(study, SID, msg_rel_self, msg_rel_social) %>%
unique()
cors = cors_spread %>%
nest(-c(study, SID)) %>%
mutate(test = map(data, possibly(~ cor.test(.$msg_rel_self, .$msg_rel_social), otherwise = NULL))) %>%
filter(!test == "NULL") %>%
mutate(coefs = map(test,
broom::tidy,
conf.int = TRUE,
conf.level = .95)) %>%
unnest(coefs, .drop = TRUE) %>%
mutate_if(is.numeric, round, 2)
cors %>%
group_by(study) %>%
summarize(`mean correlation` = mean(estimate, na.rm = TRUE),
`sd correlation` = sd(estimate, na.rm = TRUE),
min = min(estimate, na.rm = TRUE),
max = max(estimate, na.rm = TRUE)) %>%
mutate(`range correlation` = sprintf("%.2f, %.2f", min, max)) %>%
select(-min, -max) %>%
kable(digits = 2) %>%
kableExtra::kable_styling()
study | mean correlation | sd correlation | range correlation |
---|---|---|---|
study 1 | 0.57 | 0.47 | -0.97, 1.00 |
study 2 | 0.50 | 0.53 | -1.00, 1.00 |
study 3 | 0.64 | 0.47 | -0.86, 1.00 |
study 4 | 0.51 | 0.36 | -0.88, 0.99 |
study 5 | 0.49 | 0.45 | -0.94, 1.00 |
study 6 | 0.56 | 0.40 | -0.72, 1.00 |
cors %>%
arrange(study, SID) %>%
mutate(item = row_number(),
V1 = sprintf("self_%s", row_number()),
V2 = sprintf("social_%s", row_number())) %>%
ggplot(aes(item, estimate, color = study)) +
geom_point() +
geom_hline(yintercept = .7) +
scale_color_manual(values = palette_study) +
labs(x = "\nmessage number", y = "correlation between\nself and social relevance\n") +
plot_aes +
theme(legend.text = element_text(size = 11))
data_lower_cors = cors %>%
filter(estimate < .7)
total_n = merged %>%
ungroup() %>%
select(study, SID) %>%
unique() %>%
group_by(study) %>%
summarize(`total n` = n())
data_lower_cors %>%
group_by(study) %>%
summarize(n = n()) %>%
left_join(., total_n) %>%
mutate(percent = (n / `total n`) * 100) %>%
kable(digits = 2) %>%
kableExtra::kable_styling()
study | n | total n | percent |
---|---|---|---|
study 1 | 532 | 2081 | 25.56 |
study 2 | 257 | 547 | 46.98 |
study 3 | 79 | 248 | 31.85 |
study 4 | 91 | 139 | 65.47 |
study 5 | 178 | 315 | 56.51 |
study 6 | 198 | 397 | 49.87 |
Estimate the mega-analysis model in the downsampled dataset.
data_downsample = merged %>%
filter(SID %in% data_lower_cors$SID)
model = lmerTest::lmer(msg_share_std ~ 0 + msg_rel_self_between*sharing_type +
msg_rel_self_within*sharing_type +
msg_rel_social_between*sharing_type +
msg_rel_social_within*sharing_type +
(1 + msg_rel_self_within + msg_rel_social_within | SID) +
(1 + msg_rel_self_within + msg_rel_social_within | item),
data = data_downsample,
control = lmerControl(optimizer = "bobyqa"))
car::vif(model)
## msg_rel_self_between sharing_type
## 2.153936 1.023945
## msg_rel_self_within msg_rel_social_between
## 1.129519 2.153773
## msg_rel_social_within msg_rel_self_between:sharing_type
## 1.142870 3.639040
## sharing_type:msg_rel_self_within sharing_type:msg_rel_social_between
## 1.271816 3.673000
## sharing_type:msg_rel_social_within
## 1.283590
predicted = ggeffects::ggpredict(model, c("msg_rel_self_between [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "self_between") %>%
bind_rows(ggeffects::ggpredict(model, c("msg_rel_self_within [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "self_within")) %>%
bind_rows(ggeffects::ggpredict(model, c("msg_rel_social_between [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "social_between")) %>%
bind_rows(ggeffects::ggpredict(model, c("msg_rel_social_within [-3:3]", "sharing_type")) %>%
data.frame() %>%
mutate(type = "social_within"))
points = data_downsample %>%
select(-group) %>%
rename("group" = sharing_type,
"predicted" = msg_share_std) %>%
select(study, SID, group, predicted, contains("within"), contains("between")) %>%
gather(type, x, contains("msg")) %>%
mutate(type = gsub("msg_rel_", "", type),
group = ifelse(group == 0, "broadcast", "narrowcast")) %>%
extract(type, c("variable", "type"), "(.*)_(.*)") %>%
filter(x < 3 & x > -3)
(fig3_alt = predicted %>%
mutate(group = ifelse(group == 0, "broadcast", "narrowcast")) %>%
extract(type, c("variable", "type"), "(.*)_(.*)") %>%
ggplot(aes(x, predicted, color = group, fill = group, linetype = type)) +
geom_point(data = points, aes(x, predicted), alpha = .02, size = .25) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high), alpha = .2, color = NA) +
geom_line(size = 1) +
facet_grid(~variable) +
scale_color_manual(name = "", values = palette_sharing) +
scale_fill_manual(name = "", values = palette_sharing) +
scale_linetype_manual(name = "", values = c("solid", "dotted")) +
guides(linetype = guide_legend(override.aes = list(fill = NA))) +
labs(x = "\nstandardized relevance rating", y = "predicted standardized sharing intention rating\n") +
plot_aes +
theme(legend.position = "top",
legend.key.width=unit(2,"cm")))
model %>%
broom.mixed::tidy(conf.int = TRUE) %>%
filter(effect == "fixed") %>%
rename("SE" = std.error,
"t" = statistic,
"p" = p.value) %>%
select(-group, -effect) %>%
mutate_at(vars(-contains("term"), -contains("p.value")), round, 2) %>%
mutate(term = gsub(":", " x ", term),
term = gsub("msg_", "", term),
term = gsub("_", " ", term),
term = gsub("within", "within", term),
term = gsub("between", "between", term),
term = gsub("rel self", "self relevance", term),
term = gsub("rel social", "social relevance", term),
term = gsub("sharing type", "sharing type (narrowcast)", term),
p = ifelse(p < .001, "< .001",
ifelse(p == 1, "1.000", gsub("0.(.*)", ".\\1", sprintf("%.3f", p)))),
`b [95% CI]` = sprintf("%.2f [%0.2f, %.2f]", estimate, conf.low, conf.high)) %>%
select(term, `b [95% CI]`, df, t, p) %>%
kable() %>%
kableExtra::kable_styling()
term | b [95% CI] | df | t | p |
---|---|---|---|---|
self relevance between | 0.42 [0.37, 0.46] | 1369.13 | 17.05 | < .001 |
sharing type (narrowcast) | -0.02 [-0.04, -0.00] | 9751.51 | -2.04 | .040 |
self relevance within | 0.16 [0.14, 0.18] | 323.35 | 15.97 | < .001 |
social relevance between | 0.17 [0.12, 0.22] | 1345.78 | 6.51 | < .001 |
social relevance within | 0.11 [0.09, 0.13] | 291.11 | 11.62 | < .001 |
self relevance between x sharing type (narrowcast) | -0.12 [-0.16, -0.09] | 9640.58 | -6.87 | < .001 |
sharing type (narrowcast) x self relevance within | -0.08 [-0.10, -0.06] | 8596.93 | -6.81 | < .001 |
sharing type (narrowcast) x social relevance between | 0.11 [0.07, 0.15] | 9631.67 | 5.84 | < .001 |
sharing type (narrowcast) x social relevance within | 0.12 [0.09, 0.14] | 7891.28 | 9.69 | < .001 |