#install packages install.packages(c("data.table","psych","car","JuliaCall","dplyr","flextable","officer","ggplot2","ggpubr","MplusAutomation")) #load packages library(data.table) library(psych) library(car) library(JuliaCall) library(dplyr) library(flextable) library(officer) library(ggplot2) library(ggpubr) library(MplusAutomation) #set up Julia ### download and install Julia (https://julialang.org/downloads/) if not already done ### ##start Julia julia <- julia_setup() ##save directory to the Julia folder indicated in julia_setup (e.g., "C:/AppData/Local/JULIA-~1.2/bin") julia_wd <- "C:/AppData/Local/JULIA-~1.2/bin" ##install Julia packages julia_install_package("MixedModels") julia_install_package("DataFrames") julia_install_package("StatsBase") ##load Julia packages julia_library("MixedModels") julia_library("DataFrames") julia_library("StatsBase") #save directory to the folder to which files created in R should be saved (e.g., "C:/SNP-B5/") files_wd <- "C:/SNP-B5/" #read data dat <- as.data.frame(fread("https://madata.bib.uni-mannheim.de/364/2/SNP-B5_Data.csv", header = T, sep = ",")) #apply data-exclusion criteria (Footnote 7) dat <- subset(dat, subset = bigfive_incomplete == 0) dat <- subset(dat, subset = sample < 5 | c(sample == 5 & external_predictors_incomplete == 0) | c(sample == 6 & external_predictors_incomplete == 0)) dat <- subset(dat, subset = double_participation == 0) dat <- subset(dat, subset = instruction_check_item_part2 != 2) dat <- subset(dat, subset = not_followed_instructions == 0) dat <- subset(dat, subset = c(chinese_characters_known != 1 & recall_correct_total > 0) | c(chinese_characters_known == 1 & recall_correct_values > 0)) dat <- subset(dat, subset = participated_seriously != 2) dat <- subset(dat, subset = not_use_data != 1) #compute variables ##compute BFI/BFI-2 domains dat_BFI <- subset(dat, subset = sample == 1 | sample == 2) dat_BFI2 <- subset(dat, subset = sample == 3 | sample == 4 | sample == 5 | sample == 6) dat_BFI$agr <- rowMeans(dat_BFI[c("agr01r","agr02","agr03r","agr04","agr05","agr06r","agr07","agr08r","agr09")], na.rm=TRUE) dat_BFI$cns <- rowMeans(dat_BFI[c("cns01","cns02r","cns03","cns04r","cns05r","cns06","cns07","cns08","cns09r")], na.rm=TRUE) dat_BFI$opn <- rowMeans(dat_BFI[c("opn01","opn02","opn03","opn04","opn05","opn06","opn07r","opn08","opn09r","opn10")], na.rm=TRUE) dat_BFI$ext <- rowMeans(dat_BFI[c("ext01","ext02r","ext03","ext04","ext05r","ext06","ext07r","ext08")], na.rm=TRUE) dat_BFI$neu <- rowMeans(dat_BFI[c("neu01","neu02r","neu03","neu04","neu05r","neu06","neu07r","neu08")], na.rm=TRUE) dat_BFI2$agr <- rowMeans(dat_BFI2[c("agr01","agr02","agr03r","agr04r","agr05r","agr06","agr07","agr08r","agr09r","agr10r","agr11","agr12")], na.rm=TRUE) dat_BFI2$cns <- rowMeans(dat_BFI2[c("cns01r","cns02r","cns03","cns04","cns05r","cns06r","cns07","cns08","cns09","cns10r","cns11","cns12r")], na.rm=TRUE) dat_BFI2$opn <- rowMeans(dat_BFI2[c("opn01r","opn02","opn03","opn04","opn05r","opn06r","opn07","opn08","opn09r","opn10r","opn11r","opn12")], na.rm=TRUE) dat_BFI2$ext <- rowMeans(dat_BFI2[c("ext01","ext02","ext03r","ext04r","ext05","ext06r","ext07r","ext08r","ext09","ext10","ext11r","ext12")], na.rm=TRUE) dat_BFI2$neu <- rowMeans(dat_BFI2[c("neu01r","neu02r","neu03","neu04","neu05r","neu06r","neu07","neu08","neu09r","neu10r","neu11","neu12")], na.rm=TRUE) ##compute BFI-2 facets dat_BFI2$compassion <- rowMeans(dat_BFI2[c("agr01","agr04r","agr07","agr10r")], na.rm=TRUE) dat_BFI2$respectfulness <- rowMeans(dat_BFI2[c("agr02","agr05r","agr08r","agr11")], na.rm=TRUE) dat_BFI2$trust <- rowMeans(dat_BFI2[c("agr03r","agr06","agr09r","agr12")], na.rm=TRUE) dat_BFI2$organization <- rowMeans(dat_BFI2[c("cns01r","cns04","cns07","cns10r")], na.rm=TRUE) dat_BFI2$productiveness <- rowMeans(dat_BFI2[c("cns02r","cns05r","cns08","cns11")], na.rm=TRUE) dat_BFI2$responsibility <- rowMeans(dat_BFI2[c("cns03","cns06r","cns09","cns12r")], na.rm=TRUE) dat_BFI2$aesthetic <- rowMeans(dat_BFI2[c("opn01r","opn04","opn07","opn10r")], na.rm=TRUE) dat_BFI2$creative <- rowMeans(dat_BFI2[c("opn03","opn06r","opn09r","opn12")], na.rm=TRUE) dat_BFI2$intellectual <- rowMeans(dat_BFI2[c("opn02","opn05r","opn08","opn11r")], na.rm=TRUE) dat_BFI2$assertiveness <- rowMeans(dat_BFI2[c("ext02","ext05","ext08r","ext11r")], na.rm=TRUE) dat_BFI2$energy <- rowMeans(dat_BFI2[c("ext03r","ext06r","ext09","ext12")], na.rm=TRUE) dat_BFI2$sociability <- rowMeans(dat_BFI2[c("ext01","ext04r","ext07r","ext10")], na.rm=TRUE) dat_BFI2$anxiety <- rowMeans(dat_BFI2[c("neu01r","neu04","neu07","neu10r")], na.rm=TRUE) dat_BFI2$depression <- rowMeans(dat_BFI2[c("neu02r","neu05r","neu08","neu11")], na.rm=TRUE) dat_BFI2$emotional <- rowMeans(dat_BFI2[c("neu03","neu06r","neu09r","neu12")], na.rm=TRUE) ##merge datasets dat_BFI[ ,c("compassion","respectfulness","trust","organization","productiveness","responsibility","aesthetic","creative","intellectual", "assertiveness","energy","sociability","anxiety","depression","emotional")] <- NA dat <- rbind(dat_BFI,dat_BFI2) rm(dat_BFI,dat_BFI2) ##compute external predictors in Experiment 3 dat3 <- subset(dat, subset = sample == 5 | sample == 6) dat3$rational <- rowMeans(dat3[c("premed01","premed02","premed03","premed04","premed05","premed06","premed07","premed08","premed09","premed10","premed11")], na.rm=TRUE) dat3$nfc <- rowMeans(dat3[c("nfc01","nfc02","nfc03r","nfc04r","nfc05r","nfc06","nfc07r","nfc08r","nfc09r","nfc10","nfc11","nfc12r","nfc13","nfc14","nfc15","nfc16r","nfc17r","nfc18")], na.rm=TRUE) dat3$attention <- rowMeans(dat3[c("sa01","sa02","sa03","sa04","sa05","sa06","sa07","sa08","sa09","sa10","sa11","sa12r","sa13r")], na.rm=TRUE) ##compute BFI-2 domains for indirect-effects analyses ###Experiment 2 dat2 <- subset(dat, subset = sample == 3 | sample == 4) dat2$agr_no_trust <- rowMeans(dat2[c("agr01","agr02","agr04r","agr05r","agr07","agr08r","agr10r","agr11")], na.rm=TRUE) dat2$cns_no_respo <- rowMeans(dat2[c("cns01r","cns02r","cns04","cns05r","cns07","cns08","cns10r","cns11")], na.rm=TRUE) dat2$opn_no_intel <- rowMeans(dat2[c("opn01r","opn03","opn04","opn06r","opn07","opn09r","opn10r","opn12")], na.rm=TRUE) ####Spearman's rank correlations between the full and reduced domain scores (Experiment 2's Statistical Modeling section) dat2_1 <- aggregate(cbind(agr,agr_no_trust,cns,cns_no_respo,opn,opn_no_intel) ~ id, dat2, mean) print(corr.test(dat2_1, method="spearman"), short=F) rm(dat2_1) ###Experiment 3 dat3$agr_no_trust <- rowMeans(dat3[c("agr01","agr02","agr04r","agr05r","agr07","agr08r","agr10r","agr11")], na.rm=TRUE) dat3$cns_no_respo <- rowMeans(dat3[c("cns01r","cns02r","cns04","cns05r","cns07","cns08","cns10r","cns11")], na.rm=TRUE) dat3$opn_no_intel <- rowMeans(dat3[c("opn01r","opn03","opn04","opn06r","opn07","opn09r","opn10r","opn12")], na.rm=TRUE) ####Spearman's rank correlations between the full and reduced domain scores (Experiment 2's Statistical Modeling section) dat3_1 <- aggregate(cbind(agr,agr_no_trust,cns,cns_no_respo,opn,opn_no_intel) ~ id, dat3, mean) print(corr.test(dat3_1, method="spearman"), short=F) rm(dat3_1) ##merge datasets dat2[ ,c("rational","nfc","attention")] <- NA dat2 <- subset(dat2, select = c(id,pair_index_within_sample,agr_no_trust,cns_no_respo,opn_no_intel,rational,nfc,attention)) dat3 <- subset(dat3, select = c(id,pair_index_within_sample,agr_no_trust,cns_no_respo,opn_no_intel,rational,nfc,attention)) dat23 <- rbind(dat2,dat3) dat <- merge(dat, dat23, by = c("id","pair_index_within_sample"), all = TRUE) rm(dat2,dat3,dat23) #create datasets for experiments ##Experiment 1 dat1 <- subset(dat, subset = sample == 1 | sample == 2) ##Experiment 2 dat2 <- subset(dat, subset = sample == 3 | sample == 4) ##Experiment 3 dat3 <- subset(dat, subset = sample == 5 | sample == 6) ##Experiments 1-3 dat123 <- subset(dat, subset = sample == 1 | sample == 2 | sample == 3 | sample == 4 | sample == 5 | sample == 6) ##Experiments 2-3 dat23 <- subset(dat, subset = sample == 3 | sample == 4 | sample == 5 | sample == 6) #demographics ##aggregate data by id ###Experiment 1 dat1_1 <- aggregate(sample ~ id, dat1, FUN = function(x) mean(x, na.rm=T)) dat1_2 <- aggregate(sex ~ id, dat1, FUN = function(x) mean(x, na.rm=T)) dat1_3 <- aggregate(age ~ id, dat1, FUN = function(x) mean(x, na.rm=T)) dat1_4 <- aggregate(ethnical_background ~ id, dat1, FUN = function(x) mean(x, na.rm=T)) dat1_5 <- aggregate(participation_duration ~ id, dat1, FUN = function(x) mean(x, na.rm=T)) dat1_1 <- merge(dat1_1, dat1_2, by = "id", all = TRUE) dat1_1 <- merge(dat1_1, dat1_3, by = "id", all = TRUE) dat1_1 <- merge(dat1_1, dat1_4, by = "id", all = TRUE) dat1_1 <- merge(dat1_1, dat1_5, by = "id", all = TRUE) rm(dat1_2,dat1_3,dat1_4,dat1_5) ###Experiment 2 dat2_1 <- aggregate(sample ~ id, dat2, FUN = function(x) mean(x, na.rm=T)) dat2_2 <- aggregate(sex ~ id, dat2, FUN = function(x) mean(x, na.rm=T)) dat2_3 <- aggregate(age ~ id, dat2, FUN = function(x) mean(x, na.rm=T)) dat2_4 <- aggregate(ethnical_background ~ id, dat2, FUN = function(x) mean(x, na.rm=T)) dat2_5 <- aggregate(participation_duration ~ id, dat2, FUN = function(x) mean(x, na.rm=T)) dat2_1 <- merge(dat2_1, dat2_2, by = "id", all = TRUE) dat2_1 <- merge(dat2_1, dat2_3, by = "id", all = TRUE) dat2_1 <- merge(dat2_1, dat2_4, by = "id", all = TRUE) dat2_1 <- merge(dat2_1, dat2_5, by = "id", all = TRUE) rm(dat2_2,dat2_3,dat2_4,dat2_5) ###Experiment 3 dat3_1 <- aggregate(sample ~ id, dat3, FUN = function(x) mean(x, na.rm=T)) dat3_2 <- aggregate(sex ~ id, dat3, FUN = function(x) mean(x, na.rm=T)) dat3_3 <- aggregate(age ~ id, dat3, FUN = function(x) mean(x, na.rm=T)) dat3_4 <- aggregate(ethnical_background ~ id, dat3, FUN = function(x) mean(x, na.rm=T)) dat3_5 <- aggregate(participation_duration ~ id, dat3, FUN = function(x) mean(x, na.rm=T)) dat3_1 <- merge(dat3_1, dat3_2, by = "id", all = TRUE) dat3_1 <- merge(dat3_1, dat3_3, by = "id", all = TRUE) dat3_1 <- merge(dat3_1, dat3_4, by = "id", all = TRUE) dat3_1 <- merge(dat3_1, dat3_5, by = "id", all = TRUE) rm(dat3_2,dat3_3,dat3_4,dat3_5) ##sample size and age ###Experiment 1 dat1_1 <- transform(dat1_1, sample_size = ave(seq(nrow(dat1_1)), sample, FUN=length)) dat1_2 <- aggregate(sample_size ~ sample, dat1_1, FUN = function(x) mean(x, na.rm=T)) dat1_3 <- aggregate(age ~ sample, dat1_1, FUN = function(x) round(mean(x, na.rm=T),2)) dat1_4 <- aggregate(age ~ sample, dat1_1, FUN = function(x) round(sd(x, na.rm=T),2)) ###Experiment 2 dat2_1 <- transform(dat2_1, sample_size = ave(seq(nrow(dat2_1)), sample, FUN=length)) dat2_2 <- aggregate(sample_size ~ sample, dat2_1, FUN = function(x) mean(x, na.rm=T)) dat2_3 <- aggregate(age ~ sample, dat2_1, FUN = function(x) round(mean(x, na.rm=T),2)) dat2_4 <- aggregate(age ~ sample, dat2_1, FUN = function(x) round(sd(x, na.rm=T),2)) ###Experiment 3 dat3_1 <- transform(dat3_1, sample_size = ave(seq(nrow(dat3_1)), sample, FUN=length)) dat3_2 <- aggregate(sample_size ~ sample, dat3_1, FUN = function(x) mean(x, na.rm=T)) dat3_3 <- aggregate(age ~ sample, dat3_1, FUN = function(x) round(mean(x, na.rm=T),2)) dat3_4 <- aggregate(age ~ sample, dat3_1, FUN = function(x) round(sd(x, na.rm=T),2)) ##sex and ethnical background ###Experiment 1 dat1_1a <- subset(dat1_1, subset = sample == 1) sex_exp1a <- as.data.frame(table(dat1_1a$sex)) dat1_1b <- subset(dat1_1, subset = sample == 2) sex_exp1b <- as.data.frame(table(dat1_1b$sex)) ethnicity_exp1 <- as.data.frame(table(dat1_1$ethnical_background)) ###Experiment 2 dat2_1a <- subset(dat2_1, subset = sample == 3) sex_exp2a <- as.data.frame(table(dat2_1a$sex)) dat2_1b <- subset(dat2_1, subset = sample == 4) sex_exp2b <- as.data.frame(table(dat2_1b$sex)) ethnicity_exp2 <- as.data.frame(table(dat2_1$ethnical_background)) ###Experiment 3 dat3_1a <- subset(dat3_1, subset = sample == 5) sex_exp3a <- as.data.frame(table(dat3_1a$sex)) dat3_1b <- subset(dat3_1, subset = sample == 6) sex_exp3b <- as.data.frame(table(dat3_1b$sex)) ethnicity_exp3 <- as.data.frame(table(dat3_1$ethnical_background)) ##print demographics ###Experiment 1 paste0("Sample 1a: N = ", dat1_2[1,2], ", ", round(100*(sex_exp1a[2,2]/dat1_2[1,2]), 0), "% female, ", round(100*(sex_exp1a[1,2]/dat1_2[1,2]), 0), "% male, ", round(100*((dat1_2[1,2]-sum(sex_exp1a[,2]))/dat1_2[1,2]), 0), "% missing, Mage = ", dat1_3[1,2], ", SDage = ", dat1_4[1,2]) paste0("Sample 1b: N = ", dat1_2[2,2], ", ", round(100*(sex_exp1b[2,2]/dat1_2[2,2]), 0), "% female, ", round(100*(sex_exp1b[1,2]/dat1_2[2,2]), 0), "% male, ", round(100*((dat1_2[2,2]-sum(sex_exp1b[,2]))/dat1_2[2,2]), 0), "% missing, Mage = ", dat1_3[2,2], ", SDage = ", dat1_4[2,2]) paste0("ethnical background of Samples 1a-b: ", round(100*(ethnicity_exp1[1,2]/sum(dat1_2[,2])), 0), "% Caucasian, ", round(100*(ethnicity_exp1[2,2]/sum(dat1_2[,2])), 0), "% African-American, ", round(100*(ethnicity_exp1[3,2]/sum(dat1_2[,2])), 0), "% Asian, ", round(100*(ethnicity_exp1[4,2]/sum(dat1_2[,2])), 0), "% Hispanic, ", round(100*(ethnicity_exp1[5,2]/sum(dat1_2[,2])), 0), "% Other, ", round(100*((sum(dat1_2[,2])-sum(ethnicity_exp1[,2]))/sum(dat1_2[,2])), 0), "% missing") paste0("participation duration: Mdn = ", round((median(dat1_1[,6], na.rm=T))/60, 0), " minutes") rm(dat1_1,dat1_2,dat1_3,dat1_4,dat1_1a,dat1_1b,sex_exp1a,sex_exp1b,ethnicity_exp1) ###Experimentt 2 paste0("Sample 2a: N = ", dat2_2[1,2], ", ", round(100*(sex_exp2a[2,2]/dat2_2[1,2]), 1), "% female, ", round(100*(sex_exp2a[1,2]/dat2_2[1,2]), 1), "% male, ", round(100*((dat2_2[1,2]-sum(sex_exp2a[,2]))/dat2_2[1,2]), 1), "% missing, Mage = ", dat2_3[1,2], ", SDage = ", dat2_4[1,2]) paste0("Sample 2b: N = ", dat2_2[2,2], ", ", round(100*(sex_exp2b[2,2]/dat2_2[2,2]), 1), "% female, ", round(100*(sex_exp2b[1,2]/dat2_2[2,2]), 1), "% male, ", round(100*((dat2_2[2,2]-sum(sex_exp2b[,2]))/dat2_2[2,2]), 1), "% missing, Mage = ", dat2_3[2,2], ", SDage = ", dat2_4[2,2]) paste0("ethnicity in Experiment 2: ", round(100*(ethnicity_exp2[1,2]/sum(dat2_2[,2])), 0), "% Caucasian, ", round(100*(ethnicity_exp2[2,2]/sum(dat2_2[,2])), 0), "% African-American, ", round(100*(ethnicity_exp2[3,2]/sum(dat2_2[,2])), 0), "% Asian, ", round(100*(ethnicity_exp2[4,2]/sum(dat2_2[,2])), 0), "% Hispanic, ", round(100*(ethnicity_exp2[5,2]/sum(dat2_2[,2])), 0), "% Other, ", round(100*((sum(dat2_2[,2])-sum(ethnicity_exp2[,2]))/sum(dat2_2[,2])), 0), "% missing") paste0("participation duration: Mdn = ", round((median(dat2_1[,6], na.rm=T))/60, 0), " minutes") rm(dat2_1,dat2_2,dat2_3,dat2_4,dat2_1a,dat2_1b,sex_exp2a,sex_exp2b,ethnicity_exp2) ###Experiment 3 paste0("Sample 3a: N = ", dat3_2[1,2], ", ", round(100*(sex_exp3a[2,2]/dat3_2[1,2]), 1), "% female, ", round(100*(sex_exp3a[1,2]/dat3_2[1,2]), 1), "% male, ", round(100*((dat3_2[1,2]-sum(sex_exp3a[,2]))/dat3_2[1,2]), 1), "% missing, Mage = ", dat3_3[1,2], ", SDage = ", dat3_4[1,2]) paste0("Sample 3b: N = ", dat3_2[2,2], ", ", round(100*(sex_exp3b[2,2]/dat3_2[2,2]), 1), "% female, ", round(100*(sex_exp3b[1,2]/dat3_2[2,2]), 1), "% male, ", round(100*((dat3_2[2,2]-sum(sex_exp3b[,2]))/dat3_2[2,2]), 1), "% missing, Mage = ", dat3_3[2,2], ", SDage = ", dat3_4[2,2]) paste0("ethnicity in Experiment 3: ", round(100*(ethnicity_exp3[1,2]/sum(dat3_2[,2])), 0), "% Caucasian, ", round(100*(ethnicity_exp3[2,2]/sum(dat3_2[,2])), 0), "% African-American, ", round(100*(ethnicity_exp3[3,2]/sum(dat3_2[,2])), 0), "% Asian, ", round(100*(ethnicity_exp3[4,2]/sum(dat3_2[,2])), 0), "% Hispanic, ", round(100*(ethnicity_exp3[5,2]/sum(dat3_2[,2])), 0), "% Other, ", round(100*((sum(dat3_2[,2])-sum(ethnicity_exp3[,2]))/sum(dat3_2[,2])), 0), "% missing") paste0("participation duration: Mdn = ", round((median(dat3_1[,6], na.rm=T))/60, 0), " minutes") rm(dat3_1,dat3_2,dat3_3,dat3_4,dat3_1a,dat3_1b,sex_exp3a,sex_exp3b,ethnicity_exp3) #recall rate ##Experiment 1 recall_rate_exp1 <- as.data.frame(table(dat1$recall_correct)) paste0("Experiment 1: ", round(100*(recall_rate_exp1[3,2]/sum(recall_rate_exp1[,2])), 0), "%") ##Experiment 2 recall_rate_exp2 <- as.data.frame(table(dat2$recall_correct)) paste0("Experiment 2: ", round(100*(recall_rate_exp2[3,2]/sum(recall_rate_exp2[,2])), 0), "%") ##Experiment 3 recall_rate_exp3 <- as.data.frame(table(dat3$recall_correct)) paste0("Experiment 3: ", round(100*(recall_rate_exp3[3,2]/sum(recall_rate_exp3[,2])), 0), "%") rm(recall_rate_exp1,recall_rate_exp2,recall_rate_exp3) #proportion of participants who knew the meaning of at least one presented Chinese character ##Experiment 1 dat1_1 <- aggregate(chinese_characters_known ~ id, dat1, FUN = function(x) mean(x, na.rm=T)) characters_known_exp1 <- as.data.frame(table(dat1_1$chinese_characters_known)) paste0("Experiment 1: ", round(100*(characters_known_exp1[2,2]/sum(characters_known_exp1[,2])), 0), "%") ##Experiment 2 dat2_1 <- aggregate(chinese_characters_known ~ id, dat2, FUN = function(x) mean(x, na.rm=T)) characters_known_exp2 <- as.data.frame(table(dat2_1$chinese_characters_known)) paste0("Experiment 2: ", round(100*(characters_known_exp2[1,2]/sum(characters_known_exp2[,2])), 0), "%") ##Experiment 3 dat3_1 <- aggregate(chinese_characters_known ~ id, dat3, FUN = function(x) mean(x, na.rm=T)) characters_known_exp3 <- as.data.frame(table(dat3_1$chinese_characters_known)) paste0("Experiment 1: ", round(100*(characters_known_exp3[1,2]/sum(characters_known_exp3[,2])), 0), "%") rm(dat1_1,dat2_1,dat3_1,characters_known_exp1,characters_known_exp2,characters_known_exp3) #internal consistencies of BFI/BFI-2 domains ##Experiment 1 dat.agr <- subset(dat1, select = c(agr01r,agr02,agr03r,agr04,agr05,agr06r,agr07,agr08r,agr09)) dat.cns <- subset(dat1, select = c(cns01,cns02r,cns03,cns04r,cns05r,cns06,cns07,cns08,cns09r)) dat.opn <- subset(dat1, select = c(opn01,opn02,opn03,opn04,opn05,opn06,opn07r,opn08,opn09r,opn10)) dat.ext <- subset(dat1, select = c(ext01,ext02r,ext03,ext04,ext05r,ext06,ext07r,ext08)) dat.neu <- subset(dat1, select = c(neu01,neu02r,neu03,neu04,neu05r,neu06,neu07r,neu08)) round(psych::alpha(dat.agr, na.rm=T)$total[1], 2) round(psych::alpha(dat.cns, na.rm=T)$total[1], 2) round(psych::alpha(dat.opn, na.rm=T)$total[1], 2) round(psych::alpha(dat.ext, na.rm=T)$total[1], 2) round(psych::alpha(dat.neu, na.rm=T)$total[1], 2) rm(dat.agr,dat.cns,dat.opn,dat.ext,dat.neu) ##Experiment 2 dat.agr <- subset(dat2, select = c(agr01,agr02,agr03r,agr04r,agr05r,agr06,agr07,agr08r,agr09r,agr10r,agr11,agr12)) dat.cns <- subset(dat2, select = c(cns01r,cns02r,cns03,cns04,cns05r,cns06r,cns07,cns08,cns09,cns10r,cns11,cns12r)) dat.opn <- subset(dat2, select = c(opn01r,opn02,opn03,opn04,opn05r,opn06r,opn07,opn08,opn09r,opn10r,opn11r,opn12)) dat.ext <- subset(dat2, select = c(ext01,ext02,ext03r,ext04r,ext05,ext06r,ext07r,ext08r,ext09,ext10,ext11r,ext12)) dat.neu <- subset(dat2, select = c(neu01r,neu02r,neu03,neu04,neu05r,neu06r,neu07,neu08,neu09r,neu10r,neu11,neu12)) round(psych::alpha(dat.agr, na.rm=T)$total[1], 2) round(psych::alpha(dat.cns, na.rm=T)$total[1], 2) round(psych::alpha(dat.opn, na.rm=T)$total[1], 2) round(psych::alpha(dat.ext, na.rm=T)$total[1], 2) round(psych::alpha(dat.neu, na.rm=T)$total[1], 2) rm(dat.agr,dat.cns,dat.opn,dat.ext,dat.neu) ##Experiment 3 dat.agr <- subset(dat3, select = c(agr01,agr02,agr03r,agr04r,agr05r,agr06,agr07,agr08r,agr09r,agr10r,agr11,agr12)) dat.cns <- subset(dat3, select = c(cns01r,cns02r,cns03,cns04,cns05r,cns06r,cns07,cns08,cns09,cns10r,cns11,cns12r)) dat.opn <- subset(dat3, select = c(opn01r,opn02,opn03,opn04,opn05r,opn06r,opn07,opn08,opn09r,opn10r,opn11r,opn12)) dat.ext <- subset(dat3, select = c(ext01,ext02,ext03r,ext04r,ext05,ext06r,ext07r,ext08r,ext09,ext10,ext11r,ext12)) dat.neu <- subset(dat3, select = c(neu01r,neu02r,neu03,neu04,neu05r,neu06r,neu07,neu08,neu09r,neu10r,neu11,neu12)) round(psych::alpha(dat.agr, na.rm=T)$total[1], 2) round(psych::alpha(dat.cns, na.rm=T)$total[1], 2) round(psych::alpha(dat.opn, na.rm=T)$total[1], 2) round(psych::alpha(dat.ext, na.rm=T)$total[1], 2) round(psych::alpha(dat.neu, na.rm=T)$total[1], 2) rm(dat.agr,dat.cns,dat.opn,dat.ext,dat.neu) #internal consistencies of BFI-2 facets ##Experiment 2 dat.compassion <- subset(dat2, select = c(agr01,agr04r,agr07,agr10r)) dat.respectfulness <- subset(dat2, select = c(agr02,agr05r,agr08r,agr11)) dat.trust <- subset(dat2, select = c(agr03r,agr06,agr09r,agr12)) dat.organization <- subset(dat2, select = c(cns01r,cns04,cns07,cns10r)) dat.productiveness <- subset(dat2, select = c(cns02r,cns05r,cns08,cns11)) dat.responsibility <- subset(dat2, select = c(cns03,cns06r,cns09,cns12r)) dat.aesthetic <- subset(dat2, select = c(opn01r,opn04,opn07,opn10r)) dat.creative <- subset(dat2, select = c(opn03,opn06r,opn09r,opn12)) dat.intellectual <- subset(dat2, select = c(opn02,opn05r,opn08,opn11r)) dat.assertiveness <- subset(dat2, select = c(ext02,ext05,ext08r,ext11r)) dat.energy <- subset(dat2, select = c(ext03r,ext06r,ext09,ext12)) dat.sociability <- subset(dat2, select = c(ext01,ext04r,ext07r,ext10)) dat.anxiety <- subset(dat2, select = c(neu01r,neu04,neu07,neu10r)) dat.depression <- subset(dat2, select = c(neu02r,neu05r,neu08,neu11)) dat.emotional <- subset(dat2, select = c(neu03,neu06r,neu09r,neu12)) round(psych::alpha(dat.compassion, na.rm=T)$total[1], 2) round(psych::alpha(dat.respectfulness, na.rm=T)$total[1], 2) round(psych::alpha(dat.trust, na.rm=T)$total[1], 2) round(psych::alpha(dat.organization, na.rm=T)$total[1], 2) round(psych::alpha(dat.productiveness, na.rm=T)$total[1], 2) round(psych::alpha(dat.responsibility, na.rm=T)$total[1], 2) round(psych::alpha(dat.aesthetic, na.rm=T)$total[1], 2) round(psych::alpha(dat.creative, na.rm=T)$total[1], 2) round(psych::alpha(dat.intellectual, na.rm=T)$total[1], 2) round(psych::alpha(dat.assertiveness, na.rm=T)$total[1], 2) round(psych::alpha(dat.energy, na.rm=T)$total[1], 2) round(psych::alpha(dat.sociability, na.rm=T)$total[1], 2) round(psych::alpha(dat.anxiety, na.rm=T)$total[1], 2) round(psych::alpha(dat.depression, na.rm=T)$total[1], 2) round(psych::alpha(dat.emotional, na.rm=T)$total[1], 2) rm(dat.compassion,dat.respectfulness,dat.trust,dat.organization, dat.productiveness,dat.responsibility,dat.aesthetic,dat.creative,dat.intellectual, dat.assertiveness,dat.energy,dat.sociability,dat.anxiety,dat.depression,dat.emotional) ##Experiment 3 dat.compassion <- subset(dat3, select = c(agr01,agr04r,agr07,agr10r)) dat.respectfulness <- subset(dat3, select = c(agr02,agr05r,agr08r,agr11)) dat.trust <- subset(dat3, select = c(agr03r,agr06,agr09r,agr12)) dat.organization <- subset(dat3, select = c(cns01r,cns04,cns07,cns10r)) dat.productiveness <- subset(dat3, select = c(cns02r,cns05r,cns08,cns11)) dat.responsibility <- subset(dat3, select = c(cns03,cns06r,cns09,cns12r)) dat.aesthetic <- subset(dat3, select = c(opn01r,opn04,opn07,opn10r)) dat.creative <- subset(dat3, select = c(opn03,opn06r,opn09r,opn12)) dat.intellectual <- subset(dat3, select = c(opn02,opn05r,opn08,opn11r)) dat.assertiveness <- subset(dat3, select = c(ext02,ext05,ext08r,ext11r)) dat.energy <- subset(dat3, select = c(ext03r,ext06r,ext09,ext12)) dat.sociability <- subset(dat3, select = c(ext01,ext04r,ext07r,ext10)) dat.anxiety <- subset(dat3, select = c(neu01r,neu04,neu07,neu10r)) dat.depression <- subset(dat3, select = c(neu02r,neu05r,neu08,neu11)) dat.emotional <- subset(dat3, select = c(neu03,neu06r,neu09r,neu12)) round(psych::alpha(dat.compassion, na.rm=T)$total[1], 2) round(psych::alpha(dat.respectfulness, na.rm=T)$total[1], 2) round(psych::alpha(dat.trust, na.rm=T)$total[1], 2) round(psych::alpha(dat.organization, na.rm=T)$total[1], 2) round(psych::alpha(dat.productiveness, na.rm=T)$total[1], 2) round(psych::alpha(dat.responsibility, na.rm=T)$total[1], 2) round(psych::alpha(dat.aesthetic, na.rm=T)$total[1], 2) round(psych::alpha(dat.creative, na.rm=T)$total[1], 2) round(psych::alpha(dat.intellectual, na.rm=T)$total[1], 2) round(psych::alpha(dat.assertiveness, na.rm=T)$total[1], 2) round(psych::alpha(dat.energy, na.rm=T)$total[1], 2) round(psych::alpha(dat.sociability, na.rm=T)$total[1], 2) round(psych::alpha(dat.anxiety, na.rm=T)$total[1], 2) round(psych::alpha(dat.depression, na.rm=T)$total[1], 2) round(psych::alpha(dat.emotional, na.rm=T)$total[1], 2) rm(dat.compassion,dat.respectfulness,dat.trust,dat.organization,dat.productiveness,dat.responsibility, dat.aesthetic,dat.creative,dat.intellectual,dat.assertiveness,dat.energy,dat.sociability,dat.anxiety,dat.depression,dat.emotional) #internal consistencies of external predictors in Experiment 3 dat.rational <- subset(dat3, select = c(premed01,premed02,premed03,premed04,premed05,premed06,premed07,premed08,premed09,premed10,premed11)) dat.nfc <- subset(dat3, select = c(nfc01,nfc02,nfc03r,nfc04r,nfc05r,nfc06,nfc07r,nfc08r,nfc09r,nfc10,nfc11,nfc12r,nfc13,nfc14,nfc15,nfc16r,nfc17r,nfc18)) dat.attention <- subset(dat3, select = c(sa01,sa02,sa03,sa04,sa05,sa06,sa07,sa08,sa09,sa10,sa11,sa12r,sa13r)) round(psych::alpha(dat.rational, na.rm=T)$total[1], 2) round(psych::alpha(dat.nfc, na.rm=T)$total[1], 2) round(psych::alpha(dat.attention, na.rm=T)$total[1], 2) rm(dat.rational,dat.nfc,dat.attention) #prepare data for mixed-effects models ##grand-mean centering of BFI/BFI-2 domains (level-2 predictors) ###Experiment 1 dat1$agr_c <- dat1$agr - mean(dat1$agr) dat1$cns_c <- dat1$cns - mean(dat1$cns) dat1$opn_c <- dat1$opn - mean(dat1$opn) dat1$ext_c <- dat1$ext - mean(dat1$ext) dat1$neu_c <- dat1$neu - mean(dat1$neu) ###Experiment 2 dat2$agr_c <- dat2$agr - mean(dat2$agr) dat2$cns_c <- dat2$cns - mean(dat2$cns) dat2$opn_c <- dat2$opn - mean(dat2$opn) dat2$ext_c <- dat2$ext - mean(dat2$ext) dat2$neu_c <- dat2$neu - mean(dat2$neu) ###Experiment 3 dat3$agr_c <- dat3$agr - mean(dat3$agr) dat3$cns_c <- dat3$cns - mean(dat3$cns) dat3$opn_c <- dat3$opn - mean(dat3$opn) dat3$ext_c <- dat3$ext - mean(dat3$ext) dat3$neu_c <- dat3$neu - mean(dat3$neu) ###Experiments 1-3 dat123$agr_c <- dat123$agr - mean(dat123$agr) dat123$cns_c <- dat123$cns - mean(dat123$cns) dat123$opn_c <- dat123$opn - mean(dat123$opn) dat123$ext_c <- dat123$ext - mean(dat123$ext) dat123$neu_c <- dat123$neu - mean(dat123$neu) ##grand-mean centering of BFI-2 facets (level-2 predictors) ###Experiment 2 dat2$compassion_c <- dat2$compassion - mean(dat2$compassion) dat2$respectfulness_c <- dat2$respectfulness - mean(dat2$respectfulness) dat2$trust_c <- dat2$trust - mean(dat2$trust) dat2$organization_c <- dat2$organization - mean(dat2$organization) dat2$productiveness_c <- dat2$productiveness - mean(dat2$productiveness) dat2$responsibility_c <- dat2$responsibility - mean(dat2$responsibility) dat2$aesthetic_c <- dat2$aesthetic - mean(dat2$aesthetic) dat2$creative_c <- dat2$creative - mean(dat2$creative) dat2$intellectual_c <- dat2$intellectual - mean(dat2$intellectual) dat2$assertiveness_c <- dat2$assertiveness - mean(dat2$assertiveness) dat2$energy_c <- dat2$energy - mean(dat2$energy) dat2$sociability_c <- dat2$sociability - mean(dat2$sociability) dat2$anxiety_c <- dat2$anxiety - mean(dat2$anxiety) dat2$depression_c <- dat2$depression - mean(dat2$depression) dat2$emotional_c <- dat2$emotional - mean(dat2$emotional) ###Experiment 3 dat3$compassion_c <- dat3$compassion - mean(dat3$compassion) dat3$respectfulness_c <- dat3$respectfulness - mean(dat3$respectfulness) dat3$trust_c <- dat3$trust - mean(dat3$trust) dat3$organization_c <- dat3$organization - mean(dat3$organization) dat3$productiveness_c <- dat3$productiveness - mean(dat3$productiveness) dat3$responsibility_c <- dat3$responsibility - mean(dat3$responsibility) dat3$aesthetic_c <- dat3$aesthetic - mean(dat3$aesthetic) dat3$creative_c <- dat3$creative - mean(dat3$creative) dat3$intellectual_c <- dat3$intellectual - mean(dat3$intellectual) dat3$assertiveness_c <- dat3$assertiveness - mean(dat3$assertiveness) dat3$energy_c <- dat3$energy - mean(dat3$energy) dat3$sociability_c <- dat3$sociability - mean(dat3$sociability) dat3$anxiety_c <- dat3$anxiety - mean(dat3$anxiety) dat3$depression_c <- dat3$depression - mean(dat3$depression) dat3$emotional_c <- dat3$emotional - mean(dat3$emotional) ###Experiments 2-3 dat23$compassion_c <- dat23$compassion - mean(dat23$compassion) dat23$respectfulness_c <- dat23$respectfulness - mean(dat23$respectfulness) dat23$trust_c <- dat23$trust - mean(dat23$trust) dat23$organization_c <- dat23$organization - mean(dat23$organization) dat23$productiveness_c <- dat23$productiveness - mean(dat23$productiveness) dat23$responsibility_c <- dat23$responsibility - mean(dat23$responsibility) dat23$aesthetic_c <- dat23$aesthetic - mean(dat23$aesthetic) dat23$creative_c <- dat23$creative - mean(dat23$creative) dat23$intellectual_c <- dat23$intellectual - mean(dat23$intellectual) dat23$assertiveness_c <- dat23$assertiveness - mean(dat23$assertiveness) dat23$energy_c <- dat23$energy - mean(dat23$energy) dat23$sociability_c <- dat23$sociability - mean(dat23$sociability) dat23$anxiety_c <- dat23$anxiety - mean(dat23$anxiety) dat23$depression_c <- dat23$depression - mean(dat23$depression) dat23$emotional_c <- dat23$emotional - mean(dat23$emotional) ##grand-mean centering of external predictors in Experiment 3 (level-2 predictors) dat3$rational_c <- dat3$rational - mean(dat3$rational) dat3$nfc_c <- dat3$nfc - mean(dat3$nfc) dat3$attention_c <- dat3$attention - mean(dat3$attention) ##grand-mean centering of BFI-2 domains for indirect-effects analyses (level-2 predictors) ###Experiment 2 dat2$agr_no_trust_c <- dat2$agr_no_trust - mean(dat2$agr_no_trust) dat2$cns_no_respo_c <- dat2$cns_no_respo - mean(dat2$cns_no_respo) dat2$opn_no_intel_c <- dat2$opn_no_intel - mean(dat2$opn_no_intel) ###Experiment 3 dat3$agr_no_trust_c <- dat3$agr_no_trust - mean(dat3$agr_no_trust) dat3$opn_no_intel_c <- dat3$opn_no_intel - mean(dat3$opn_no_intel) ##exclude pairs of Chinese characters and social values for which the sociocultural norm was not recalled correctly ###Experiment 1 dat1 <- subset(dat1, subset = recall_correct == 1) ###Experiment 2 dat2 <- subset(dat2, subset = recall_correct == 1) ###Experiment 3 dat3 <- subset(dat3, subset = recall_correct == 1) ###Experiments 1-3 dat123 <- subset(dat123, subset = recall_correct == 1) ###Experiments 2-3 dat23 <- subset(dat23, subset = recall_correct == 1) ##exclude pairs of Chinese characters for participants who knew the meaning of at least one of the characters ###Experiment 1 dat1 <- subset(dat1, subset = chinese_characters_known != 1 | c(chinese_characters_known == 1 & pair_index_across_samples > 18)) ###Experiment 2 dat2 <- subset(dat2, subset = chinese_characters_known != 1 | c(chinese_characters_known == 1 & pair_index_across_samples > 18)) ###Experiment 3 dat3 <- subset(dat3, subset = chinese_characters_known != 1 | c(chinese_characters_known == 1 & pair_index_across_samples > 18)) ###Experiments 1-3 dat123 <- subset(dat123, subset = chinese_characters_known != 1 | c(chinese_characters_known == 1 & pair_index_across_samples > 18)) ###Experiments 2-3 dat23 <- subset(dat23, subset = chinese_characters_known != 1 | c(chinese_characters_known == 1 & pair_index_across_samples > 18)) #select variables for indirect-effects analyses in Mplus ##Experiment 2 dat2_mplus <- subset(dat2, select = c(id,agr_no_trust_c,cns_no_respo_c,opn_no_intel_c,ext_c,neu_c,personal_preference,sociocultural_norm,trust_c,responsibility_c,intellectual_c)) ##Experiment 3 dat3_mplus <- subset(dat3, select = c(id,agr_no_trust_c,cns_c,opn_c,ext_c,neu_c,personal_preference,sociocultural_norm,trust_c,rational_c,nfc_c,attention_c,opn_no_intel_c,intellectual_c)) #save datasets for indirect-effects analyses in Mplus setwd(files_wd) fwrite(dat2_mplus, file = "SNP-B5_Exp2_Mplus-Data.csv", col.names = FALSE) fwrite(dat3_mplus, file = "SNP-B5_Exp3_Mplus-Data.csv", col.names = FALSE) rm(dat2_mplus,dat3_mplus) #conduct mixed-effects models in Julia ###set working directory to Julia folder setwd(julia_wd) ##convert grouping variable to factor and assign data to Julia ###Experiment 1 dat1$id <- as.factor(dat1$id) julia_assign("dat1", dat1) ###Experiment 2 dat2$id <- as.factor(dat2$id) julia_assign("dat2", dat2) ###Experiment 3 dat3$id <- as.factor(dat3$id) julia_assign("dat3", dat3) ###Experiments 1-3 dat123$id <- as.factor(dat123$id) julia_assign("dat123", dat123) ###Experiments 2-3 dat23$id <- as.factor(dat23$id) julia_assign("dat23", dat23) ##conduct domains-as-predictors models ###Experiment 1 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * agr_c + sociocultural_norm * cns_c + sociocultural_norm * opn_c + sociocultural_norm * ext_c + sociocultural_norm * neu_c + (1 + sociocultural_norm | id)), dat1)") exp1_domain_model <- julia_eval("exp1_domain_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ###Experiment 2 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * agr_c + sociocultural_norm * cns_c + sociocultural_norm * opn_c + sociocultural_norm * ext_c + sociocultural_norm * neu_c + (1 + sociocultural_norm | id)), dat2)") exp2_domain_model <- julia_eval("exp2_domain_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ###Experiment 3 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * agr_c + sociocultural_norm * cns_c + sociocultural_norm * opn_c + sociocultural_norm * ext_c + sociocultural_norm * neu_c + (1 + sociocultural_norm | id)), dat3)") exp3_domain_model <- julia_eval("exp3_domain_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ###Experiments 1-3 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * agr_c + sociocultural_norm * cns_c + sociocultural_norm * opn_c + sociocultural_norm * ext_c + sociocultural_norm * neu_c + (1 + sociocultural_norm | id)), dat123)") exp123_domain_model <- julia_eval("exp123_domain_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ##conduct facets-as-predictors models ###Experiment 2 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * compassion_c + sociocultural_norm * respectfulness_c + sociocultural_norm * trust_c + sociocultural_norm * organization_c + sociocultural_norm * productiveness_c + sociocultural_norm * responsibility_c + sociocultural_norm * aesthetic_c + sociocultural_norm * creative_c + sociocultural_norm * intellectual_c + sociocultural_norm * assertiveness_c + sociocultural_norm * energy_c + sociocultural_norm * sociability_c + sociocultural_norm * anxiety_c + sociocultural_norm * depression_c + sociocultural_norm * emotional_c + (1 + sociocultural_norm | id)), dat2)") exp2_facet_model <- julia_eval("exp2_facet_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ###Experiment 3 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * compassion_c + sociocultural_norm * respectfulness_c + sociocultural_norm * trust_c + sociocultural_norm * organization_c + sociocultural_norm * productiveness_c + sociocultural_norm * responsibility_c + sociocultural_norm * aesthetic_c + sociocultural_norm * creative_c + sociocultural_norm * intellectual_c + sociocultural_norm * assertiveness_c + sociocultural_norm * energy_c + sociocultural_norm * sociability_c + sociocultural_norm * anxiety_c + sociocultural_norm * depression_c + sociocultural_norm * emotional_c + (1 + sociocultural_norm | id)), dat3)") exp3_facet_model <- julia_eval("exp3_facet_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ###Experiments 2-3 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * compassion_c + sociocultural_norm * respectfulness_c + sociocultural_norm * trust_c + sociocultural_norm * organization_c + sociocultural_norm * productiveness_c + sociocultural_norm * responsibility_c + sociocultural_norm * aesthetic_c + sociocultural_norm * creative_c + sociocultural_norm * intellectual_c + sociocultural_norm * assertiveness_c + sociocultural_norm * energy_c + sociocultural_norm * sociability_c + sociocultural_norm * anxiety_c + sociocultural_norm * depression_c + sociocultural_norm * emotional_c + (1 + sociocultural_norm | id)), dat23)") exp23_facet_model <- julia_eval("exp23_facet_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") ##conduct externals-as-predictors model in Experiment 3 julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * rational_c + sociocultural_norm * nfc_c + sociocultural_norm * attention_c + (1 + sociocultural_norm | id)), dat3)") exp3_external_model <- julia_eval("exp3_external_model = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") #Table 1: Effects of the Big Five Domains on Personal Preferences Moderated by Sociocultural Norms dat_table1 <- data.frame(exp1_domain_model,exp2_domain_model,exp3_domain_model,exp123_domain_model) dat_table1[,13] <- NULL dat_table1[,9] <- NULL dat_table1[,5] <- NULL dat_table1[,1] <- c("(1) (Intercept)","(7) Norms", "(2) Agr", "(3) Cns", "(4) Opn", "(5) Ext", "(6) Neu", "(8) Agr x Norms", "(9) Cns x Norms", "(10) Opn x Norms", "(11) Ext x Norms", "(12) Neu x Norms") dat_table1[,2:13] <- sapply(dat_table1[,2:13], as.numeric) format_numbers <- function(x){ ifelse(abs(x) <= 0.005, formatC(x, format = "e", digits = 0), formatC(x, format = "f", digits = 2)) } dat_table1 <- dat_table1 %>% mutate_if(is.numeric, format_numbers) dat_table1$ci <- paste0("[", dat_table1$lowerCI, ", ", dat_table1$upperCI, "]") dat_table1$ci.1 <- paste0("[", dat_table1$lowerCI.1, ", ", dat_table1$upperCI.1, "]") dat_table1$ci.2 <- paste0("[", dat_table1$lowerCI.2, ", ", dat_table1$upperCI.2, "]") dat_table1$ci.3 <- paste0("[", dat_table1$lowerCI.3, ", ", dat_table1$upperCI.3, "]") ### Before you continue with this R-script, run R-script "SNP-B5_R-Script_BayesFactors.R" ### BF <- c("","",exp1_agr_BF,exp1_cns_BF,exp1_opn_BF,exp1_ext_BF,exp1_neu_BF, exp1_IEagr_BF,exp1_IEcns_BF,exp1_IEopn_BF,exp1_IEext_BF,exp1_IEneu_BF) BF.1 <- c("","",exp2_agr_BF,exp2_cns_BF,exp2_opn_BF,exp2_ext_BF,exp2_neu_BF, exp2_IEagr_BF,exp2_IEcns_BF,exp2_IEopn_BF,exp2_IEext_BF,exp2_IEneu_BF) BF.2 <- c("","",exp3_agr_BF,exp3_cns_BF,exp3_opn_BF,exp3_ext_BF,exp3_neu_BF, exp3_IEagr_BF,exp3_IEcns_BF,exp3_IEopn_BF,exp3_IEext_BF,exp3_IEneu_BF) BF <- as.numeric(unlist(BF)) BF.1 <- as.numeric(unlist(BF.1)) BF.2 <- as.numeric(unlist(BF.2)) dat_BF <- data.frame(BF,BF.1,BF.2) format_BFs <- function(x){ ifelse(abs(x) <= 0.005 | abs(x) > 999, formatC(x, format = "e", digits = 0), formatC(x, format = "f", digits = 2)) } dat_BF <- dat_BF %>% mutate_if(is.numeric, format_BFs) dat_BF[2,] <- c(exp1_norms_BF,exp2_norms_BF,exp3_norms_BF) #insert BFs for Norms (prevents replacement of values with "Inf") dat_table1 <- cbind(dat_table1,dat_BF) dat_table1 <- dat_table1[c(1,3:7,2,8:12),] dat_table1$blank <- NA dat_table1$blank.1 <- NA dat_table1$blank.2 <- NA dat_table1 <- dat_table1[c("predictor","Pe","ci","BF","blank","Pe.1","ci.1","BF.1","blank.1","Pe.2","ci.2","BF.2","blank.2","Pe.3","ci.3")] col_keys <- c("predictor","Pe","ci","BF","blank","Pe.1","ci.1","BF.1","blank.1","Pe.2","ci.2","BF.2","blank.2","Pe.3","ci.3") head1 <- c("Predictor","Experiment 1","Experiment 1","Experiment 1","","Experiment 2","Experiment 2","Experiment 2","","Experiment 3","Experiment 3","Experiment 3","","Experiments 1-3","Experiments 1-3") head2 <- c("","Estimate"," 95% CI","BF10","","Estimate"," 95% CI","BF10","","Estimate"," 95% CI","BF10","","Estimate"," 95% CI") head <- data.frame(col_keys,head1,head2, stringsAsFactors = FALSE) rm(col_keys,head1,head2) tbl <- flextable(dat_table1) tbl <- set_header_df(tbl, mapping=head, key="col_keys") tbl <- hline_top(tbl, j=1:15, border=fp_border(width=2), part="header") tbl <- merge_at(tbl, i=1, j=2:4, part="header") tbl <- merge_at(tbl, i=1, j=6:8, part="header") tbl <- merge_at(tbl, i=1, j=10:12, part="header") tbl <- merge_at(tbl, i=1, j=14:15, part="header") tbl <- hline(tbl, i=1, j=c(2:4,6:8,10:12,14:15), border=fp_border(width=1.2), part="header") tbl <- hline(tbl, i=2, j=1:15, border=fp_border(width=1.2), part="header") tbl <- flextable::font(tbl, fontname="Times", part="all") tbl <- fontsize(tbl, size=10, part="all") tbl <- align(tbl, align="center", part="all") tbl <- align(tbl, j = c("predictor"), align="left", part="body") tbl <- width(tbl, j =~ predictor, width=1.4) tbl <- width(tbl, j =~ Pe + Pe.1 + Pe.2 + Pe.3, width=.6) tbl <- width(tbl, j =~ ci + ci.1 + ci.2 + ci.3, width=.97) tbl <- width(tbl, j =~ BF + BF.1 + BF.2, width=.67) tbl <- width(tbl, j =~ blank + blank.1 + blank.2, width=.1) tbl <- colformat_lgl(tbl, j =~ blank + blank.1 + blank.2, na_str="") tbl <- height_all(tbl, height=.1, part="all") tbl setwd(files_wd) doc <- read_docx() doc <- body_add_flextable(doc, value = tbl) print(doc, target = "Table1.docx") rm(dat_table1,dat_BF,head,tbl,doc,BF,BF.1,BF.2,exp1_norms_BF,exp2_norms_BF,exp3_norms_BF,format_BFs,format_numbers) #Figure 2: Effects of the Big Five Domains on Personal Preferences as a Function of Sociocultural Norms exp1_domain_model[,2] <- as.numeric(exp1_domain_model[,2]) exp2_domain_model[,2] <- as.numeric(exp2_domain_model[,2]) exp3_domain_model[,2] <- as.numeric(exp3_domain_model[,2]) exp123_domain_model[,2] <- as.numeric(exp123_domain_model[,2]) dat1$y_plot_agr <- exp1_domain_model[1,2] + exp1_domain_model[2,2] * dat1$sociocultural_norm + exp1_domain_model[3,2] * dat1$agr_c + exp1_domain_model[8,2] * dat1$agr_c * dat1$sociocultural_norm dat1$y_plot_cns <- exp1_domain_model[1,2] + exp1_domain_model[2,2] * dat1$sociocultural_norm + exp1_domain_model[4,2] * dat1$cns_c + exp1_domain_model[9,2] * dat1$cns_c * dat1$sociocultural_norm dat1$y_plot_opn <- exp1_domain_model[1,2] + exp1_domain_model[2,2] * dat1$sociocultural_norm + exp1_domain_model[5,2] * dat1$opn_c + exp1_domain_model[10,2] * dat1$opn_c * dat1$sociocultural_norm dat1$y_plot_ext <- exp1_domain_model[1,2] + exp1_domain_model[2,2] * dat1$sociocultural_norm + exp1_domain_model[6,2] * dat1$ext_c + exp1_domain_model[11,2] * dat1$ext_c * dat1$sociocultural_norm dat1$y_plot_neu <- exp1_domain_model[1,2] + exp1_domain_model[2,2] * dat1$sociocultural_norm + exp1_domain_model[7,2] * dat1$neu_c + exp1_domain_model[12,2] * dat1$neu_c * dat1$sociocultural_norm dat2$y_plot_agr <- exp2_domain_model[1,2] + exp2_domain_model[2,2] * dat2$sociocultural_norm + exp2_domain_model[3,2] * dat2$agr_c + exp2_domain_model[8,2] * dat2$agr_c * dat2$sociocultural_norm dat2$y_plot_cns <- exp2_domain_model[1,2] + exp2_domain_model[2,2] * dat2$sociocultural_norm + exp2_domain_model[4,2] * dat2$cns_c + exp2_domain_model[9,2] * dat2$cns_c * dat2$sociocultural_norm dat2$y_plot_opn <- exp2_domain_model[1,2] + exp2_domain_model[2,2] * dat2$sociocultural_norm + exp2_domain_model[5,2] * dat2$opn_c + exp2_domain_model[10,2] * dat2$opn_c * dat2$sociocultural_norm dat2$y_plot_ext <- exp2_domain_model[1,2] + exp2_domain_model[2,2] * dat2$sociocultural_norm + exp2_domain_model[6,2] * dat2$ext_c + exp2_domain_model[11,2] * dat2$ext_c * dat2$sociocultural_norm dat2$y_plot_neu <- exp2_domain_model[1,2] + exp2_domain_model[2,2] * dat2$sociocultural_norm + exp2_domain_model[7,2] * dat2$neu_c + exp2_domain_model[12,2] * dat2$neu_c * dat2$sociocultural_norm dat3$y_plot_agr <- exp3_domain_model[1,2] + exp3_domain_model[2,2] * dat3$sociocultural_norm + exp3_domain_model[3,2] * dat3$agr_c + exp3_domain_model[8,2] * dat3$agr_c * dat3$sociocultural_norm dat3$y_plot_cns <- exp3_domain_model[1,2] + exp3_domain_model[2,2] * dat3$sociocultural_norm + exp3_domain_model[4,2] * dat3$cns_c + exp3_domain_model[9,2] * dat3$cns_c * dat3$sociocultural_norm dat3$y_plot_opn <- exp3_domain_model[1,2] + exp3_domain_model[2,2] * dat3$sociocultural_norm + exp3_domain_model[5,2] * dat3$opn_c + exp3_domain_model[10,2] * dat3$opn_c * dat3$sociocultural_norm dat3$y_plot_ext <- exp3_domain_model[1,2] + exp3_domain_model[2,2] * dat3$sociocultural_norm + exp3_domain_model[6,2] * dat3$ext_c + exp3_domain_model[11,2] * dat3$ext_c * dat3$sociocultural_norm dat3$y_plot_neu <- exp3_domain_model[1,2] + exp3_domain_model[2,2] * dat3$sociocultural_norm + exp3_domain_model[7,2] * dat3$neu_c + exp3_domain_model[12,2] * dat3$neu_c * dat3$sociocultural_norm dat123$y_plot_agr <- exp123_domain_model[1,2] + exp123_domain_model[2,2] * dat123$sociocultural_norm + exp123_domain_model[3,2] * dat123$agr_c + exp123_domain_model[8,2] * dat123$agr_c * dat123$sociocultural_norm dat123$y_plot_cns <- exp123_domain_model[1,2] + exp123_domain_model[2,2] * dat123$sociocultural_norm + exp123_domain_model[4,2] * dat123$cns_c + exp123_domain_model[9,2] * dat123$cns_c * dat123$sociocultural_norm dat123$y_plot_opn <- exp123_domain_model[1,2] + exp123_domain_model[2,2] * dat123$sociocultural_norm + exp123_domain_model[5,2] * dat123$opn_c + exp123_domain_model[10,2] * dat123$opn_c * dat123$sociocultural_norm dat123$y_plot_ext <- exp123_domain_model[1,2] + exp123_domain_model[2,2] * dat123$sociocultural_norm + exp123_domain_model[6,2] * dat123$ext_c + exp123_domain_model[11,2] * dat123$ext_c * dat123$sociocultural_norm dat123$y_plot_neu <- exp123_domain_model[1,2] + exp123_domain_model[2,2] * dat123$sociocultural_norm + exp123_domain_model[7,2] * dat123$neu_c + exp123_domain_model[12,2] * dat123$neu_c * dat123$sociocultural_norm legend_title <- "Sociocultural Norms" legend_labels <- c("Majority Prefers Left Character/Value ","Majority Prefers Right Character/Value") ##Figure 2.1 exp1_plot_agr <- ggplot(data=dat1, aes(x=agr_c, y=y_plot_agr, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.title.y = element_text(size=11, angle=0, margin=margin(0,5,0,0)), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.67,1.05)) + ylim(3, 6) + labs(tag="a") + ylab("Pt Prefers\nRight C/V\n\n\n\n\nPt Prefers\nLeft C/V") + xlab("Agreeableness") exp1_plot_cns <- ggplot(data=dat1, aes(x=cns_c, y=y_plot_cns, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="b") + xlab("Conscientiousness") exp1_plot_opn <- ggplot(data=dat1, aes(x=opn_c, y=y_plot_opn, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="c") + xlab("Openness") exp1_plot_ext <- ggplot(data=dat1, aes(x=ext_c, y=y_plot_ext, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="d") + xlab("Extraversion") exp1_plot_neu <- ggplot(data=dat1, aes(x=neu_c, y=y_plot_neu, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="e") + xlab("Neuroticism") Figure2.1 <- ggarrange(exp1_plot_agr,exp1_plot_cns,exp1_plot_opn,exp1_plot_ext,exp1_plot_neu, widths=c(5.1,3.5,3.5,3.5,3.5), ncol=5, common.legend = TRUE, legend = "top") Figure2.1 <- annotate_figure(Figure2.1, fig.lab = "1. Experiment 1", fig.lab.pos = "top.left", fig.lab.size = 11) ##Figure 2.2 exp2_plot_agr <- ggplot(data=dat2, aes(x=agr_c, y=y_plot_agr, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.title.y = element_text(size=11, angle=0, margin=margin(0,5,0,0)), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.67,1.05)) + ylim(3, 6) + labs(tag="a") + ylab("Pt Prefers\nRight C/V\n\n\n\n\nPt Prefers\nLeft C/V") + xlab("Agreeableness") exp2_plot_cns <- ggplot(data=dat2, aes(x=cns_c, y=y_plot_cns, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="b") + xlab("Conscientiousness") exp2_plot_opn <- ggplot(data=dat2, aes(x=opn_c, y=y_plot_opn, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="c") + xlab("Openness") exp2_plot_ext <- ggplot(data=dat2, aes(x=ext_c, y=y_plot_ext, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="d") + xlab("Extraversion") exp2_plot_neu <- ggplot(data=dat2, aes(x=neu_c, y=y_plot_neu, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="e") + xlab("Neuroticism") Figure2.2 <- ggarrange(exp2_plot_agr,exp2_plot_cns,exp2_plot_opn,exp2_plot_ext,exp2_plot_neu, widths=c(5.1,3.5,3.5,3.5,3.5), ncol=5, common.legend = TRUE, legend = "top") Figure2.2 <- annotate_figure(Figure2.2, fig.lab = "2. Experiment 2", fig.lab.pos = "top.left", fig.lab.size = 11) ##Figure 2.3 exp3_plot_agr <- ggplot(data=dat3, aes(x=agr_c, y=y_plot_agr, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.title.y = element_text(size=11, angle=0, margin=margin(0,5,0,0)), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.67,1.05)) + ylim(3, 6) + labs(tag="a") + ylab("Pt Prefers\nRight C/V\n\n\n\n\nPt Prefers\nLeft C/V") + xlab("Agreeableness") exp3_plot_cns <- ggplot(data=dat3, aes(x=cns_c, y=y_plot_cns, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="b") + xlab("Conscientiousness") exp3_plot_opn <- ggplot(data=dat3, aes(x=opn_c, y=y_plot_opn, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="c") + xlab("Openness") exp3_plot_ext <- ggplot(data=dat3, aes(x=ext_c, y=y_plot_ext, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="d") + xlab("Extraversion") exp3_plot_neu <- ggplot(data=dat3, aes(x=neu_c, y=y_plot_neu, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="e") + xlab("Neuroticism") Figure2.3 <- ggarrange(exp3_plot_agr,exp3_plot_cns,exp3_plot_opn,exp3_plot_ext,exp3_plot_neu, widths=c(5.1,3.5,3.5,3.5,3.5), ncol=5, common.legend = TRUE, legend = "top") Figure2.3 <- annotate_figure(Figure2.3, fig.lab = "3. Experiment 3", fig.lab.pos = "top.left", fig.lab.size = 11) ##Figure 2.4 exp123_plot_agr <- ggplot(data=dat123, aes(x=agr_c, y=y_plot_agr, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.title.y = element_text(size=11, angle=0, margin=margin(0,5,0,0)), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.67,1.05)) + ylim(3, 6) + labs(tag="a") + ylab("Pt Prefers\nRight C/V\n\n\n\n\nPt Prefers\nLeft C/V") + xlab("Agreeableness") exp123_plot_cns <- ggplot(data=dat123, aes(x=cns_c, y=y_plot_cns, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="b") + xlab("Conscientiousness") exp123_plot_opn <- ggplot(data=dat123, aes(x=opn_c, y=y_plot_opn, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="c") + xlab("Openness") exp123_plot_ext <- ggplot(data=dat123, aes(x=ext_c, y=y_plot_ext, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="d") + xlab("Extraversion") exp123_plot_neu <- ggplot(data=dat123, aes(x=neu_c, y=y_plot_neu, color=factor(sociocultural_norm))) + geom_line(aes(linetype = factor(sociocultural_norm)), size = 0.5) + scale_linetype_manual(name=legend_title, labels=legend_labels, values=c("solid","dashed"), guide = guide_legend(direction = "horizontal", title.position = "top")) + scale_color_manual(name=legend_title, labels=legend_labels, values=c("black","black"), guide = guide_legend(direction = "horizontal", title.position = "top")) + theme(legend.position = "top", legend.title = element_text(size=11), legend.title.align=0.5, legend.text = element_text(size=11), legend.key = element_blank(), legend.key.width = unit(1,"cm"), legend.box.margin=margin(10,10,10,10), axis.text.x = element_text(colour = "black", size=9), axis.title.x = element_text(size=11), axis.text.y = element_blank(), axis.title.y = element_blank(), axis.ticks = element_blank(), panel.background = element_blank(), panel.grid.major = element_line(color="grey", size = 0.1), panel.grid.minor = element_blank(), plot.tag = element_text(color="black", size=11), plot.tag.position = c(0.5,1.05)) + ylim(3, 6) + labs(tag="e") + xlab("Neuroticism") Figure2.4 <- ggarrange(exp123_plot_agr,exp123_plot_cns,exp123_plot_opn,exp123_plot_ext,exp123_plot_neu, widths=c(5.1,3.5,3.5,3.5,3.5), ncol=5, common.legend = TRUE, legend = "top") Figure2.4 <- annotate_figure(Figure2.4, fig.lab = "4. Experiments 1-3", fig.lab.pos = "top.left", fig.lab.size = 11) ##save Figures 2.1-2.2 as Figure2_top Figure2_top <- ggarrange(Figure2.1, ggparagraph(text="NA", color="white"), Figure2.2, nrow=3, ncol=1, heights=c(7,1,7)) ggsave("Figure2_top.jpg", plot=Figure2_top, device="jpg", path=files_wd, width=268, height=150, units="mm", dpi=720) ##save Figures 2.3-2.4 as Figure2_bottom Figure2_bottom <- ggarrange(Figure2.3, ggparagraph(text="NA", color="white"), Figure2.4, nrow=3, ncol=1, heights=c(7,1,7)) ggsave("Figure2_bottom.jpg", plot=Figure2_bottom, device="jpg", path=files_wd, width=268, height=150, units="mm", dpi=720) rm(exp1_domain_model,exp2_domain_model,exp3_domain_model,exp123_domain_model,exp1_plot_agr,exp1_plot_cns,exp1_plot_opn,exp1_plot_ext,exp1_plot_neu,exp2_plot_agr,exp2_plot_cns,exp2_plot_opn,exp2_plot_ext,exp2_plot_neu, exp3_plot_agr,exp3_plot_cns,exp3_plot_opn,exp3_plot_ext,exp3_plot_neu,exp123_plot_agr,exp123_plot_cns,exp123_plot_opn,exp123_plot_ext,exp123_plot_neu, Figure2.1,Figure2.2,Figure2.3,Figure2.4,Figure2_top,Figure2_bottom,legend_labels,legend_title) #Table 2: Effects of the Big Five Facets on Personal Preferences Moderated by Sociocultural Norms dat_table2 <- data.frame(exp2_facet_model,exp3_facet_model,exp23_facet_model) dat_table2[,9] <- NULL dat_table2[,5] <- NULL dat_table2[,1] <- c("(1) (Intercept)","(17) Norms", "(2) A-Compassion", "(3) A-Respectfulness", "(4) A-Trust", "(5) C-Organization", "(6) C-Productiveness","(7) C-Responsibility", "(8) O-Aesthetic Sensitivity", "(9) O-Creative Imagination", "(10) O-Intellectual Curiosity", "(11) E-Assertiveness", "(12) E-Energy Level", "(13) E-Sociability", "(14) N-Anxiety", "(15) N-Depression", "(16) N-Emotional Volatility", "(18) A-Compassion x Norms", "(19) A-Respectfulness x Norms", "(20) A-Trust x Norms", "(21) C-Organization x Norms", "(22) C-Productiveness x Norms", "(23) C-Responsibility x Norms", "(24) O-Aesthetic Sensitivity x Norms", "(25) O-Creative Imagination x Norms", "(26) O-Intellectual Curiosity x Norms", "(27) E-Assertiveness x Norms", "(28) E-Energy Level x Norms", "(29) E-Sociability x Norms", "(30) N-Anxiety x Norms", "(31) N-Depression x Norms", "(32) N-Emotional Volatility x Norms") dat_table2[,2:10] <- sapply(dat_table2[,2:10], as.numeric) format_numbers <- function(x){ ifelse(abs(x) <= 0.005, formatC(x, format = "e", digits = 0), formatC(x, format = "f", digits = 2)) } dat_table2 <- dat_table2 %>% mutate_if(is.numeric, format_numbers) dat_table2$ci <- paste0("[", dat_table2$lowerCI, ", ", dat_table2$upperCI, "]") dat_table2$ci.1 <- paste0("[", dat_table2$lowerCI.1, ", ", dat_table2$upperCI.1, "]") dat_table2$ci.2 <- paste0("[", dat_table2$lowerCI.2, ", ", dat_table2$upperCI.2, "]") ### Before you continue with this R-script, run R-script "SNP-B5_R-Script_BayesFactors.R" (if not already done for Table 1) ### BF <- c("","",exp2_comp_BF,exp2_respect_BF,exp2_trust_BF,exp2_orga_BF,exp2_prod_BF, exp2_respo_BF,exp2_aest_BF,exp2_crea_BF,exp2_intel_BF,exp2_asse_BF, exp2_ener_BF,exp2_soci_BF,exp2_anxi_BF,exp2_depr_BF,exp2_emot_BF, exp2_IEcomp_BF,exp2_IErespect_BF,exp2_IEtrust_BF,exp2_IEorga_BF,exp2_IEprod_BF, exp2_IErespo_BF,exp2_IEaest_BF,exp2_IEcrea_BF,exp2_IEintel_BF,exp2_IEasse_BF, exp2_IEener_BF,exp2_IEsoci_BF,exp2_IEanxi_BF,exp2_IEdepr_BF,exp2_IEemot_BF) BF.1 <- c("","",exp3_comp_BF,exp3_respect_BF,exp3_trust_BF,exp3_orga_BF,exp3_prod_BF, exp3_respo_BF,exp3_aest_BF,exp3_crea_BF,exp3_intel_BF,exp3_asse_BF, exp3_ener_BF,exp3_soci_BF,exp3_anxi_BF,exp3_depr_BF,exp3_emot_BF, exp3_IEcomp_BF,exp3_IErespect_BF,exp3_IEtrust_BF,exp3_IEorga_BF,exp3_IEprod_BF, exp3_IErespo_BF,exp3_IEaest_BF,exp3_IEcrea_BF,exp3_IEintel_BF,exp3_IEasse_BF, exp3_IEener_BF,exp3_IEsoci_BF,exp3_IEanxi_BF,exp3_IEdepr_BF,exp3_IEemot_BF) BF <- as.numeric(unlist(BF)) BF.1 <- as.numeric(unlist(BF.1)) dat_BF <- data.frame(BF,BF.1) format_BFs <- function(x){ ifelse(abs(x) <= 0.005 | abs(x) > 999, formatC(x, format = "e", digits = 0), formatC(x, format = "f", digits = 2)) } dat_BF <- dat_BF %>% mutate_if(is.numeric, format_BFs) dat_BF[2,] <- c(exp2_norms_facets_BF,exp3_norms_facets_BF) #insert BFs for Norms (prevents replacement of values with "Inf") dat_table2 <- cbind(dat_table2,dat_BF) dat_table2 <- dat_table2[c(1,3:17,2,18:32),] dat_table2$blank <- NA dat_table2$blank.1 <- NA dat_table2 <- dat_table2[c("predictor","Pe","ci","BF","blank","Pe.1","ci.1","BF.1","blank.1","Pe.2","ci.2")] col_keys <- c("predictor","Pe","ci","BF","blank","Pe.1","ci.1","BF.1","blank.1","Pe.2","ci.2") head1 <- c("Predictor","Experiment 2","Experiment 2","Experiment 2","","Experiment 3","Experiment 3","Experiment 3","","Experiments 2-3","Experiments 2-3") head2 <- c("","Estimate"," 95% CI","BF10","","Estimate"," 95% CI","BF10","","Estimate"," 95% CI") head <- data.frame(col_keys,head1,head2, stringsAsFactors = FALSE) rm(col_keys,head1,head2) tbl <- flextable(dat_table2) tbl <- set_header_df(tbl, mapping=head, key="col_keys") tbl <- hline_top(tbl, j=1:11, border=fp_border(width=2), part="header") tbl <- merge_at(tbl, i=1, j=2:4, part="header") tbl <- merge_at(tbl, i=1, j=6:8, part="header") tbl <- merge_at(tbl, i=1, j=10:11, part="header") tbl <- hline(tbl, i=1, j=c(2:4,6:8,10:11), border=fp_border(width=1.2), part="header") tbl <- hline(tbl, i=2, j=1:11, border=fp_border(width=1.2), part="header") tbl <- flextable::font(tbl, fontname="Times", part="all") tbl <- fontsize(tbl, size=10, part="all") tbl <- align(tbl, align="center", part="all") tbl <- align(tbl, j = c("predictor"), align="left", part="body") tbl <- width(tbl, j =~ predictor, width=2.8) tbl <- width(tbl, j =~ Pe + Pe.1 + Pe.2, width=.6) tbl <- width(tbl, j =~ ci + ci.1 + ci.2, width=.97) tbl <- width(tbl, j =~ BF + BF.1, width=.67) tbl <- width(tbl, j =~ blank + blank.1, width=.1) tbl <- colformat_lgl(tbl, j =~ blank + blank.1, na_str="") tbl <- height_all(tbl, height=.1, part="all") tbl setwd(files_wd) doc <- read_docx() doc <- body_add_flextable(doc, value = tbl) print(doc, target = "Table2.docx") rm(exp2_facet_model,exp3_facet_model,exp23_facet_model,dat_table2,dat_BF,head,tbl,doc,BF,BF.1,exp2_norms_facets_BF,exp3_norms_facets_BF,format_BFs,format_numbers) #Table 3: Results of Indirect-Effects Analyses ##download the folder "SNP-B5_Mplus-Scripts" and set working directory to that folder (e.g., "C:/SNP-B5/SNP-B5_Mplus-Scripts/") setwd("C:/SNP-B5/SNP-B5_Mplus-Scripts/") ##run indirect-effects analyses in Mplus runModels("SNP-B5_Exp2_indirect_effects.inp") runModels("SNP-B5_Exp3_indirect_effects.inp") ##create table dat_table3 <- data.frame(matrix(nrow=10,ncol=15)) colnames(dat_table3) <- c("Predictor","Mediator","Direct_effect_estimate","Direct_effect_lower_ci","Direct_effect_upper_ci","Indirect_effect_path_a_estimate","Indirect_effect_path_a_lower_ci","Indirect_effect_path_a_upper_ci","Indirect_effect_path_b_estimate","Indirect_effect_path_b_lower_ci","Indirect_effect_path_b_upper_ci","Indirect_effect_estimate","Indirect_effect_lower_ci","Indirect_effect_upper_ci","Proportion_mediated") dat_table3$Predictor <- c("(1) Agreeableness","(2) Conscientiousness","(3) Openness","(4) Extraversion","(5) Neuroticism","(6) Agreeableness","(7) Conscientiousness","(8) Openness","(9) Extraversion","(10) Neuroticism") dat_table3$Mediator <- c("A-Trust","C-Responsibility","O-Intellectual Curiosity","","","A-Trust","Rational Thought","Need for Cognition","Social Attention","") exp2_output_indirect_effects <- readModels("SNP-B5_Exp2_indirect_effects.out", what = "parameters") exp2_output_coeff <- sapply(exp2_output_indirect_effects, "[", "ci.unstandardized") exp2_coeff <- sapply(exp2_output_coeff, "[", c("paramHeader","param","est","low2.5","up2.5")) exp2_dat_coeff <- data.frame(matrix(unlist(exp2_coeff), nrow=52, ncol = 5, byrow=F), stringsAsFactors=FALSE) exp2_dat_coeff$X3 <- as.numeric(exp2_dat_coeff$X3) exp2_dat_coeff$X4 <- as.numeric(exp2_dat_coeff$X4) exp2_dat_coeff$X5 <- as.numeric(exp2_dat_coeff$X5) exp3_output_indirect_effects <- readModels("SNP-B5_Exp3_indirect_effects.out", what = "parameters") exp3_output_coeff <- sapply(exp3_output_indirect_effects, "[", "ci.unstandardized") exp3_coeff <- sapply(exp3_output_coeff, "[", c("paramHeader","param","est","low2.5","up2.5")) exp3_dat_coeff <- data.frame(matrix(unlist(exp3_coeff), nrow=68, ncol = 5, byrow=F), stringsAsFactors=FALSE) exp3_dat_coeff$X3 <- as.numeric(exp3_dat_coeff$X3) exp3_dat_coeff$X4 <- as.numeric(exp3_dat_coeff$X4) exp3_dat_coeff$X5 <- as.numeric(exp3_dat_coeff$X5) dat_table3$Direct_effect_estimate <- c(exp2_dat_coeff$X3[2],exp2_dat_coeff$X3[3],exp2_dat_coeff$X3[4],exp2_dat_coeff$X3[5],exp2_dat_coeff$X3[6], exp3_dat_coeff$X3[2],exp3_dat_coeff$X3[3],exp3_dat_coeff$X3[4],exp3_dat_coeff$X3[5],exp3_dat_coeff$X3[6]) dat_table3$Direct_effect_lower_ci <- c(exp2_dat_coeff$X4[2],exp2_dat_coeff$X4[3],exp2_dat_coeff$X4[4],exp2_dat_coeff$X4[5],exp2_dat_coeff$X4[6], exp3_dat_coeff$X4[2],exp3_dat_coeff$X4[3],exp3_dat_coeff$X4[4],exp3_dat_coeff$X4[5],exp3_dat_coeff$X4[6]) dat_table3$Direct_effect_upper_ci <- c(exp2_dat_coeff$X5[2],exp2_dat_coeff$X5[3],exp2_dat_coeff$X5[4],exp2_dat_coeff$X5[5],exp2_dat_coeff$X5[6], exp3_dat_coeff$X5[2],exp3_dat_coeff$X5[3],exp3_dat_coeff$X5[4],exp3_dat_coeff$X5[5],exp3_dat_coeff$X5[6]) dat_table3$Indirect_effect_path_a_estimate <- c(exp2_dat_coeff$X3[18],exp2_dat_coeff$X3[25],exp2_dat_coeff$X3[32],"","", exp3_dat_coeff$X3[20],exp3_dat_coeff$X3[28],exp3_dat_coeff$X3[36],exp3_dat_coeff$X3[44],"") dat_table3$Indirect_effect_path_a_lower_ci <- c(exp2_dat_coeff$X4[18],exp2_dat_coeff$X4[25],exp2_dat_coeff$X4[32],"","", exp3_dat_coeff$X4[20],exp3_dat_coeff$X4[28],exp3_dat_coeff$X4[36],exp3_dat_coeff$X4[44],"") dat_table3$Indirect_effect_path_a_upper_ci <- c(exp2_dat_coeff$X5[18],exp2_dat_coeff$X5[25],exp2_dat_coeff$X5[32],"","", exp3_dat_coeff$X5[20],exp3_dat_coeff$X5[28],exp3_dat_coeff$X5[36],exp3_dat_coeff$X5[44],"") dat_table3$Indirect_effect_path_b_estimate <- c(exp2_dat_coeff$X3[7],exp2_dat_coeff$X3[8],exp2_dat_coeff$X3[9],"","", exp3_dat_coeff$X3[7],exp3_dat_coeff$X3[8],exp3_dat_coeff$X3[9],exp3_dat_coeff$X3[10],"") dat_table3$Indirect_effect_path_b_lower_ci <- c(exp2_dat_coeff$X4[7],exp2_dat_coeff$X4[8],exp2_dat_coeff$X4[9],"","", exp3_dat_coeff$X4[7],exp3_dat_coeff$X4[8],exp3_dat_coeff$X4[9],exp3_dat_coeff$X4[10],"") dat_table3$Indirect_effect_path_b_upper_ci <- c(exp2_dat_coeff$X5[7],exp2_dat_coeff$X5[8],exp2_dat_coeff$X5[9],"","", exp3_dat_coeff$X5[7],exp3_dat_coeff$X5[8],exp3_dat_coeff$X5[9],exp3_dat_coeff$X5[10],"") dat_table3$Indirect_effect_estimate <- c(exp2_dat_coeff$X3[50],exp2_dat_coeff$X3[51],exp2_dat_coeff$X3[52],"","", exp3_dat_coeff$X3[65],exp3_dat_coeff$X3[66],exp3_dat_coeff$X3[67],exp3_dat_coeff$X3[68],"") dat_table3$Indirect_effect_lower_ci <- c(exp2_dat_coeff$X4[50],exp2_dat_coeff$X4[51],exp2_dat_coeff$X4[52],"","", exp3_dat_coeff$X4[65],exp3_dat_coeff$X4[66],exp3_dat_coeff$X4[67],exp3_dat_coeff$X4[68],"") dat_table3$Indirect_effect_upper_ci <- c(exp2_dat_coeff$X5[50],exp2_dat_coeff$X5[51],exp2_dat_coeff$X5[52],"","", exp3_dat_coeff$X5[65],exp3_dat_coeff$X5[66],exp3_dat_coeff$X5[67],exp3_dat_coeff$X5[68],"") dat_table3[,3:14] <- sapply(dat_table3[,3:14], as.numeric) format_numbers <- function(x){ ifelse(abs(x) <= 0.005, formatC(x, format = "f", digits = 3), formatC(x, format = "f", digits = 2)) } dat_table3 <- dat_table3 %>% mutate_if(is.numeric, format_numbers) dat_table3[,3:14] <- sapply(dat_table3[,3:14], as.numeric) dat_table3$Proportion_mediated <- round(100*(dat_table3$Indirect_effect_estimate / (dat_table3$Indirect_effect_estimate + dat_table3$Direct_effect_estimate)), 0) dat_table3$Proportion_mediated[6] <- round(dat_table3$Proportion_mediated[6], -2) dat_table3$ci <- paste0("[", sprintf("%.2f",dat_table3[,4]), ", ", sprintf("%.2f",dat_table3[,5]), "]") dat_table3$ci.1 <- paste0("[", sprintf("%.2f",dat_table3[,7]), ", ", sprintf("%.2f",dat_table3[,8]), "]") dat_table3$ci.2 <- paste0("[", sprintf("%.2f",dat_table3[,10]), ", ", sprintf("%.2f",dat_table3[,11]), "]") dat_table3$ci.3 <- paste0("[", sprintf("%.2f",dat_table3[,13]), ", ", sprintf("%.2f",dat_table3[,14]), "]") dat_table3[c(4:5,10),c(17:19)] <- NA dat_table3$blank <- NA dat_table3$blank.1 <- NA dat_table3$blank.2 <- NA dat_table3$blank.3 <- NA dat_table3 <- dat_table3[,c("Predictor","Mediator","Direct_effect_estimate","ci","blank","Indirect_effect_path_a_estimate","ci.1","blank.1","Indirect_effect_path_b_estimate","ci.2","blank.2","Indirect_effect_estimate","ci.3","blank.3","Proportion_mediated")] dat_table3[11,1] <- "Experiment 2" dat_table3[12,1] <- "Experiment 3" dat_table3 <- dat_table3[c(11,1:5,12,6:10),] col_keys <- c("Predictor","Mediator","Direct_effect_estimate","ci","blank","Indirect_effect_path_a_estimate","ci.1","blank.1","Indirect_effect_path_b_estimate","ci.2","blank.2","Indirect_effect_estimate","ci.3","blank.3","Proportion_mediated") head1 <- c("Predictor","Mediator","Direct effect","Direct effect","","Path a of indirect effect","Path a of indirect effect","","Path b of indirect effect","Path b of indirect effect","","Indirect effect","Indirect effect","","Proportion mediated (%)") head2 <- c("","","Estimate"," 95% CI","","Estimate"," 95% CI","","Estimate"," 95% CI","","Estimate"," 95% CI","","") head <- data.frame(col_keys,head1,head2, stringsAsFactors = FALSE) rm(col_keys,head1,head2) tbl <- flextable(dat_table3) tbl <- set_header_df(tbl, mapping=head, key="col_keys") tbl <- hline_top(tbl, j=1:15, border=fp_border(width=2), part="header") tbl <- merge_at(tbl, i=1, j=3:4, part="header") tbl <- merge_at(tbl, i=1, j=6:7, part="header") tbl <- merge_at(tbl, i=1, j=9:10, part="header") tbl <- merge_at(tbl, i=1, j=12:13, part="header") tbl <- hline(tbl, i=1, j=c(3:4,6:7,9:10,12:13), border=fp_border(width=1.2), part="header") tbl <- hline(tbl, i=2, j=1:15, border=fp_border(width=1.2), part="header") tbl <- merge_at(tbl, i=1, j=1:15, part="body") tbl <- merge_at(tbl, i=7, j=1:15, part="body") tbl <- flextable::font(tbl, fontname="Times", part="all") tbl <- fontsize(tbl, size=10, part="all") tbl <- align(tbl, align="center", part="all") tbl <- align(tbl, j = c("Predictor"), align="left", part="body") tbl <- align(tbl, i=c(1,7), align="center", part="body") tbl <- width(tbl, j =~ Predictor, width=1.45) tbl <- width(tbl, j =~ Mediator, width=1.5) tbl <- width(tbl, j =~ Proportion_mediated, width=.8) tbl <- width(tbl, j =~ Direct_effect_estimate + Indirect_effect_path_a_estimate + Indirect_effect_path_b_estimate + Indirect_effect_estimate, width=.6) tbl <- width(tbl, j =~ ci + ci.1 + ci.2 + ci.3, width=.97) tbl <- width(tbl, j =~ blank + blank.1 + blank.2 + blank.3, width=.1) tbl <- colformat_lgl(tbl, j =~ blank + blank.1 + blank.2 + blank.3, na_str="") tbl <- colformat_num(tbl, j =~ Indirect_effect_path_a_estimate + Indirect_effect_path_b_estimate + Indirect_effect_estimate + Proportion_mediated, na_str="") tbl <- colformat_num(tbl, j =~ Proportion_mediated, digits=0) tbl <- height_all(tbl, height=.1, part="all") tbl setwd(files_wd) doc <- read_docx() doc <- body_add_flextable(doc, value = tbl) print(doc, target = "Table3.docx") rm(dat_table3,exp2_output_indirect_effects,exp2_output_coeff,exp2_coeff,exp2_dat_coeff,exp3_output_indirect_effects,exp3_output_coeff,exp3_coeff,exp3_dat_coeff,head,tbl,doc,format_numbers) #Results of the Externals-as-Predictors Model in Experiment 3 exp3_external_model[,2] <- as.numeric(exp3_external_model[,2]) exp3_external_model[,3] <- as.numeric(exp3_external_model[,3]) exp3_external_model[,4] <- as.numeric(exp3_external_model[,4]) paste0("Rational Thought: Estimate = ", round(exp3_external_model[3,2], 2), ", 95% CI [", round(exp3_external_model[3,3], 3), ", ", round(exp3_external_model[3,4], 2), "], BF10 = ", round(exp3_rat_BF, 2)) paste0("Need for Cognition: Estimate = ", round(exp3_external_model[4,2], 2), ", 95% CI [", round(exp3_external_model[4,3], 3), ", ", round(exp3_external_model[4,4], 2), "], BF10 = ", round(exp3_nfc_BF, 2)) paste0("Social Attention: Estimate = ", round(exp3_external_model[5,2], 2), ", 95% CI [", round(exp3_external_model[5,3], 2), ", ", round(exp3_external_model[5,4], 2), "], BF10 = ", round(exp3_att_BF, 2)) paste0("Rational Thought x Sociocultural Norms: Estimate = ", round(exp3_external_model[6,2], 2), ", 95% CI [", round(exp3_external_model[6,3], 2), ", ", round(exp3_external_model[6,4], 2), "], BF10 = ", formatC(exp3_IErat_BF, format = "e", 0)) paste0("Need for Cognition x Sociocultural Norms: Estimate = ", round(exp3_external_model[7,2], 2), ", 95% CI [", round(exp3_external_model[7,3], 2), ", ", round(exp3_external_model[7,4], 2), "], BF10 = ", formatC(exp3_IEnfc_BF, format = "e", 0)) paste0("Social Attention x Sociocultural Norms: Estimate = ", round(exp3_external_model[8,2], 2), ", 95% CI [", round(exp3_external_model[8,3], 2), ", ", round(exp3_external_model[8,4], 2), "], BF10 = ", formatC(exp3_IEatt_BF, format = "e", 0)) rm(exp3_external_model,exp3_norms_externals_BF) rm(list = ls.str(mode = 'numeric')) #Correlation Between O-Intellectual Curiosity and Need for Cognition in Experiment 3 (Footnote 20) dat3_1 <- aggregate(cbind(intellectual,nfc) ~ id, dat3, mean) dat3_1 <- subset(dat3_1, select = c(intellectual,nfc)) print(corr.test(dat3_1), short=F) rm(dat3_1) #Power of the Big Five to Qualify Norm Effects in Experiments 1-3 (General Discussion) ##recentering of the Big Five dat123_1 <- aggregate(agr_c ~ id, dat123, FUN = function(x) mean(x, na.rm=T)) dat123_2 <- aggregate(cns_c ~ id, dat123, FUN = function(x) mean(x, na.rm=T)) dat123_3 <- aggregate(opn_c ~ id, dat123, FUN = function(x) mean(x, na.rm=T)) dat123_4 <- aggregate(ext_c ~ id, dat123, FUN = function(x) mean(x, na.rm=T)) dat123_1$agr_c_high <- dat123_1$agr_c - sd(dat123_1$agr_c) dat123_1$agr_c_low <- dat123_1$agr_c + sd(dat123_1$agr_c) dat123_2$cns_c_high <- dat123_2$cns_c - sd(dat123_2$cns_c) dat123_2$cns_c_low <- dat123_2$cns_c + sd(dat123_2$cns_c) dat123_3$opn_c_high <- dat123_3$opn_c - sd(dat123_3$opn_c) dat123_3$opn_c_low <- dat123_3$opn_c + sd(dat123_3$opn_c) dat123_4$ext_c_high <- dat123_4$ext_c - sd(dat123_4$ext_c) dat123_4$ext_c_low <- dat123_4$ext_c + sd(dat123_4$ext_c) dat123_1$agr_c <- NULL dat123_2$cns_c <- NULL dat123_3$opn_c <- NULL dat123_4$ext_c <- NULL dat123 <- merge(dat123, dat123_1, by = "id", all = TRUE) dat123 <- merge(dat123, dat123_2, by = "id", all = TRUE) dat123 <- merge(dat123, dat123_3, by = "id", all = TRUE) dat123 <- merge(dat123, dat123_4, by = "id", all = TRUE) rm(dat123_1,dat123_2,dat123_3,dat123_4) ##conduct mixed-effects models in Julia ###set working directory to Julia folder setwd(julia_wd) ###convert grouping variable to factor and assign data to Julia dat123$id <- as.factor(dat123$id) julia_assign("dat123", dat123) ###conduct domains-as-predictors model for a Big Five profile that is particularly conducive to norm conformity (first group) julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * agr_c_high + sociocultural_norm * cns_c_high + sociocultural_norm * opn_c_low + sociocultural_norm * ext_c_high + sociocultural_norm * neu_c + (1 + sociocultural_norm | id)), dat123)") model_first_group <- julia_eval("model_first_group = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") paste0("Effect of sociocultural norms in first group: Estimate = ", round(as.numeric(model_first_group[2,2]), digits = 2), ", 95% CI [", round(as.numeric(model_first_group[2,3]), digits = 2), ", ", round(as.numeric(model_first_group[2,4]), digits = 2), "]") rm(model_first_group) ###conduct domains-as-predictors model for a Big Five profile that is particularly unconducive to norm conformity (second group) julia_eval("fm = fit(LinearMixedModel, @formula(personal_preference ~ 1 + sociocultural_norm * agr_c_low + sociocultural_norm * cns_c_low + sociocultural_norm * opn_c_high + sociocultural_norm * ext_c_low + sociocultural_norm * neu_c + (1 + sociocultural_norm | id)), dat123)") model_second_group <- julia_eval("model_second_group = rename!(DataFrame([(coeftable(fm).rownms) (round.(coef(fm),digits=5)) (round.(((coef(fm))-1.96*(stderror(fm))),digits=5)) (round.(((coef(fm))+1.96*(stderror(fm))),digits=5))]), :x1 => :predictor, :x2 => :Pe, :x3 => :lowerCI, :x4 => :upperCI)") paste0("Effect of sociocultural norms in second group: Estimate = ", round(as.numeric(model_second_group[2,2]), digits = 2), ", 95% CI [", round(as.numeric(model_second_group[2,3]), digits = 2), ", ", round(as.numeric(model_second_group[2,4]), digits = 2), "]") rm(model_second_group) #clear environment rm(list = ls()) #quit R q()