Supplement CAM-App

Author

Julius Fenn

Notes

Remark:

prepare data

add prolific IDs to raw data set

## load raw CAM data set
rawCAMfile <- vroom::vroom(
  file = "data/CAMspiracy_data.txt",
  delim = "\t",
  show_col_types = FALSE,
  col_names = FALSE)$X1

raw_CAM <- list()
for(i in 1:length(rawCAMfile)){
  if(testIfJson(rawCAMfile[[i]])) {
    raw_CAM[[i]] <- jsonlite::fromJSON(txt = rawCAMfile[[i]])
  }else{
      print("ERROR")
    break
    }
}

## load .xlsx file containing unique prolific IDs and CAM IDs
dat_ids <- xlsx::read.xlsx2(file = "data/questionnaireCAMs_t2.xlsx", sheetIndex = 1)
dat_ids <- dat_ids[, c("CAM_ID", "PROLIFIC_PID")]

for(i in 1:length(raw_CAM)){
  if(!(raw_CAM[[i]]$idCAM %in% dat_ids$CAM_ID)){
    print("Error")
    break
  }else{
    raw_CAM[[i]]$creator <- dat_ids$PROLIFIC_PID[dat_ids$CAM_ID %in% raw_CAM[[i]]$idCAM]
  }
}


## save raw CAM data with unique IDs
setwd("data")
writeLines("", "CAMspiracy_data_fixed.txt") # create file
text_connection <- file("CAMspiracy_data_fixed.txt", "a") # open connection to append

for(i in 1:length(raw_CAM)){
  writeLines(jsonlite::toJSON(x = raw_CAM[[i]]), text_connection)
}

close(text_connection) # close connection


### copy files (not overwritten)
tmp_file_from <-  getwd()
setwd("../outputs")
file.copy(from =  paste0(tmp_file_from, "/CAMspiracy_data_fixed.txt"), to = paste0(getwd(), "/CAMspiracy_data_fixed.txt"))
[1] FALSE
### remove files
file.remove(paste0(tmp_file_from, "/CAMspiracy_data_fixed.txt"))
[1] TRUE

overwrite single words

Remark: manual adjustments…

setwd("outputs")


dat_overwrite$text_overwrite[dat_overwrite$text_overwrite == ""] <- NA
sum(!is.na(dat_overwrite$text_overwrite))
[1] 48
# dat_overwrite$text_overwrite[!is.na(dat_overwrite$text_overwrite)]
dat_overwrite$value <- as.numeric(dat_overwrite$value)

## overwrite single concepts with unique ID
for(i in 1:nrow(dat_overwrite)){
  if(!is.na(dat_overwrite$text_overwrite[i])){
    # print(i)
    
      tmp <- dat_overwrite[i,]
      tmp$value

    if(sum(CAMfiles[[1]]$id %in% tmp$id) != 1){
      print("ERROR")
      break
    }else{
      # add suffix
      if(tmp$value < 0){
        tmp$text_overwrite <- paste0(tmp$text_overwrite, "_negative")
      }else if(tmp$value == 0){
        tmp$text_overwrite <- paste0(tmp$text_overwrite, "_neutral")
      }else if(tmp$value == 10){
        tmp$text_overwrite <- paste0(tmp$text_overwrite, "_ambivalent")
      }else{
        tmp$text_overwrite <- paste0(tmp$text_overwrite, "_positive")
      }
      
      # print(tmp$text_overwrite)
      CAMfiles[[1]][CAMfiles[[1]]$id %in% tmp$id,"text_summarized"] <- tmp$text_overwrite
    }
    
  }
}

## save overwritten nodes files
vroom::vroom_write(x =  CAMfiles[[1]], file = "CAM_nodes_clean.txt")

the fixed data set has been uploaded to the CAM-App

split data set

Data set is split according to persons with low (1) and high conspiracy (3)

dat_ids_consp <- xlsx::read.xlsx2(file = "data/questionnaire_final_t1.xlsx", sheetIndex = 1)
dat_ids_consp <- dat_ids_consp[, c("PROLIFIC_PID", "classes_conspiracy", "country", "mean_CMQ")]

table(dat_ids_consp$classes_conspiracy) # 1 = low, 3 = high

  1   2   3 
224 189 185 
## check classes again
dat_ids_consp$mean_CMQ <- as.numeric(dat_ids_consp$mean_CMQ)
boxplot(dat_ids_consp$mean_CMQ ~ dat_ids_consp$classes_conspiracy)

# table(dat_ids_consp$classes_conspiracy, dat_ids_consp$country)

to low consp.

Split data, where class conspiracy is low (1)

setwd("outputs")
if(!file.exists("lowConspiracy")){
  dir.create("lowConspiracy")
}
setwd("lowConspiracy")


CAMfiles_low <- CAMfiles

## check is ID data set is complete
if(!all(CAMfiles_low[[1]]$participantCAM %in% dat_ids_consp$PROLIFIC_PID)){
    print("Error")
}


dat_ids_consp_low <- dat_ids_consp[dat_ids_consp$classes_conspiracy == "1", ]

## only persons with low conspiracy for CAMfiles_low
CAMfiles_low[[1]] <- CAMfiles_low[[1]][CAMfiles_low[[1]]$participantCAM %in% dat_ids_consp_low$PROLIFIC_PID,]
CAMfiles_low[[2]] <- CAMfiles_low[[2]][CAMfiles_low[[2]]$participantCAM %in% dat_ids_consp_low$PROLIFIC_PID,]
CAMfiles_low[[3]] <- CAMfiles_low[[3]][CAMfiles_low[[3]]$participantCAM.x %in% dat_ids_consp_low$PROLIFIC_PID,]

## save files ob subsets
vroom::vroom_write(x =  CAMfiles_low[[1]], file = "CAM_nodes_low.txt")
vroom::vroom_write(x =  CAMfiles_low[[2]], file = "CAM_connectors_low.txt")
vroom::vroom_write(x =  CAMfiles_low[[3]], file = "CAM_merged_low.txt")

to high consp.

Split data, where class conspiracy is high (3)

setwd("outputs")
if(!file.exists("highConspiracy")){
  dir.create("highConspiracy")
}
setwd("highConspiracy")


CAMfiles_high <- CAMfiles

## check is ID data set is complete
# if(!all(CAMfiles_high[[1]]$participantCAM %in% dat_ids_consp$PROLIFIC_PID)){
#     print("Error")
# }


dat_ids_consp_high <- dat_ids_consp[dat_ids_consp$classes_conspiracy == "3", ]

## only persons with low conspiracy for CAMfiles_high
CAMfiles_high[[1]] <- CAMfiles_high[[1]][CAMfiles_high[[1]]$participantCAM %in% dat_ids_consp_high$PROLIFIC_PID,]
CAMfiles_high[[2]] <- CAMfiles_high[[2]][CAMfiles_high[[2]]$participantCAM %in% dat_ids_consp_high$PROLIFIC_PID,]
CAMfiles_high[[3]] <- CAMfiles_high[[3]][CAMfiles_high[[3]]$participantCAM.x %in% dat_ids_consp_high$PROLIFIC_PID,]

## save files ob subsets
vroom::vroom_write(x =  CAMfiles_high[[1]], file = "CAM_nodes_high.txt")
vroom::vroom_write(x =  CAMfiles_high[[2]], file = "CAM_connectors_high.txt")
vroom::vroom_write(x =  CAMfiles_high[[3]], file = "CAM_merged_high.txt")