load data.
# rm(list = ls())
library(jsonlite)
library(ggplot2)
library(tidyr)
library(dplyr)
library(binom)
library(bootstrap)
library(langcog)
raw.data.path <- "/Users/ericang/Documents/Research/polgrice_GIT/experiment/exp_versions/21_L2_S_wNeg_v2/production-results/"
## LOOP TO READ IN FILES
all.data <- data.frame()
files <- dir(raw.data.path,pattern="*.json")
for (file.name in files) {
## these are the two functions that are most meaningful
json_file <- readLines(paste(raw.data.path,file.name,sep=""))
json_file_str = paste(json_file, collapse = "")
json_file_str = gsub(",}", "}", json_file_str)
jso = jsonlite::fromJSON(json_file_str)
jso$answers$data$people <- NULL
jso1 <- data.frame(jso)
jso1$subid <- substring(file.name, 1, 6)
## now here's where data get bound together
all.data <- rbind(all.data, jso1)
}
Filter out participants and clean up.
d <- all.data %>%
select(subid, answers.data.order, answers.data.domain, answers.data.goal, answers.data.utterance, answers.data.judgment) %>%
mutate(subid = as.factor(subid)) %>%
mutate(trial = as.numeric(answers.data.order)) %>%
mutate(item = as.factor(answers.data.domain)) %>%
mutate(goal = as.factor(answers.data.goal)) %>%
mutate(utterance = as.factor(answers.data.utterance)) %>%
mutate(judgment = as.numeric(as.character(answers.data.judgment))/20) %>%
mutate(positivity = factor(as.numeric(grepl("yes", utterance)),
levels = c(0, 1),
labels = c("negative","positive"))) %>%
mutate(utterance = substring(utterance, 5)) %>%
select(subid, goal, trial, item, positivity, utterance, judgment) %>%
mutate(goal = factor(goal, levels = c("informative", "social", "both", "no_goal")))
d$utterance <- ordered(d$utterance, levels = c("terrible", "bad", "okay", "good", "amazing"))
d$positivity <- relevel(d$positivity, ref="positive")
levels(d$positivity) <- c("it was ___", "it wasn't ___")
## Joining, by = c("goal", "positivity", "utterance")
ggplot(d,
aes(x=judgment,
fill = goal)) +
geom_histogram(binwidth=0.5, position="dodge") +
facet_grid(utterance~positivity)