Load libraries
library(ggplot2)
library(dplyr)
library(langcog)
library(readr)
library(cowplot)
library(data.table)
library(magrittr)
library(lubridate)
library(tidyr)
na.mean <- function(x){mean(x,na.rm=T)}
pilot.data <- read_csv('data/pilot.data.4.csv') %>%
select(EndDate,Finished,ID,game_neg:game_pos,
self_movie:self_game,other_movie:other_game,
sim1:like2,diff_cond:sim_cond)
#Exclusions
pilot.data %<>%
mutate(EndDate = mdy_hm(EndDate)) %>%
arrange(ID,EndDate) %>%
distinct(ID) #only the first response from each participant
Get data into tidy form
munged.data <- pilot.data %>%
mutate(cond = ifelse(is.na(sim_cond),"Different", "Similar")) %>%
rowwise() %>%
mutate(sim = mean(c(sim1, sim2),na.rm=TRUE),
like = mean(c(sim1, sim2),na.rm=TRUE),
movie_prime = if(nchar(movie_neg) > 0 & nchar(movie_pos) == 0) "Negative"
else if(nchar(movie_pos) > 0 & nchar(movie_neg) == 0) "Positive"
else "None",
family_prime = if(nchar(family_neg) > 0 & nchar(family_pos) == 0) "Negative"
else if(nchar(family_pos) > 0 & nchar(family_neg) == 0) "Positive"
else "None",
pjs_prime = if(nchar(pjs_neg) > 0 & nchar(pjs_pos) == 0) "Negative"
else if(nchar(pjs_pos) > 0 & nchar(pjs_neg) == 0) "Positive"
else "None",
hair_prime = if(nchar(hair_neg) > 0 & nchar(hair_pos) == 0) "Negative"
else if(nchar(hair_pos) > 0 & nchar(hair_neg) == 0) "Positive"
else "None",
train_prime = if(nchar(train_neg) > 0 & nchar(train_pos) == 0) "Negative"
else if(nchar(train_pos) > 0 & nchar(train_neg) == 0) "Positive"
else "None",
game_prime = if(nchar(game_neg) > 0 & nchar(game_pos) == 0) "Negative"
else if(nchar(game_pos) > 0 & nchar(game_neg) == 0) "Positive"
else "None") %>%
select(EndDate,ID,movie_prime:game_prime,self_movie:other_game,sim,like,cond)
# Gather primes into long format
tidy.primes <- munged.data %>%
gather(activity,prime,movie_prime:game_prime) %>%
separate(activity, c("activity", "measure")) %>%
select(ID,activity,prime,sim:cond)
# Gather self-ratings into long format
tidy.self <- munged.data %>%
gather(person_activity,score,self_movie:self_game) %>%
separate(person_activity, c("person", "activity")) %>%
select(ID,person,activity,score,sim:cond)
# Gather other-ratings into long format
tidy.other <- munged.data %>%
gather(person_activity,score,other_movie:other_game) %>%
separate(person_activity, c("person", "activity")) %>%
select(ID,person,activity,score,sim:cond)
tidy.self.data <- left_join(tidy.primes,tidy.self)
# Split other into similar and non-similar
tidy.other.data <- left_join(tidy.primes,tidy.other) %>%
rowwise() %>%
mutate(similarity = if(sim >= 4) "similar"
else if(sim <= 2) "different"
else "neither")
Similarity scores across participants
ggplot(aes(x = sim),data=tidy.other.data) +
geom_histogram(breaks = seq(.5,6.5,by=1),
color="white",fill="steelblue") +
scale_x_continuous(name = "Similarity Rating (1-5)",
breaks = seq(1,5),
limits = c(0,6)) +
scale_y_continuous(name = "Frequency")
Finish munging
tidy.other.data %<>%
filter(similarity %in% c("similar", "different")) %>%
unite(person.similar,person,similarity) %>%
rename(person = person.similar)
tidy.data <- bind_rows(tidy.self.data,tidy.other.data) %>%
mutate(person = factor(person, levels = c("self", "other_similar", "other_different"),
labels = c("self", "other-similar", "other-different")),
prime = factor(prime, levels = c("Negative", "None", "Positive"))) %>%
group_by(person,prime,activity)
Aggregate scores by activity and prime
person.activity.data <- tidy.data %>%
summarise(mean = na.mean(score)) %>%
left_join(multi_boot(tidy.data,column="score", summary_function = "na.mean",
statistics_functions = c("ci_lower","ci_upper")),
copy = TRUE)
ggplot(aes(x = activity, y = mean, color = prime), data = person.activity.data) +
facet_grid(person ~ .) +
geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper),
position=position_dodge(.3),size=.75) +
scale_color_manual(values = c("steelblue", "gray", "darkred")) +
scale_y_continuous(name = "Mean Rating (1-7)")
Aggregate scores by prime
person.data <- person.activity.data %>%
summarise(mean = mean(mean)) %>%
left_join(multi_boot(person.activity.data,column="mean",
statistics_functions = c("ci_lower","ci_upper")),
copy = TRUE)
ggplot(aes(x = person, y = mean, color = prime), data = person.data) +
geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper),
position=position_dodge(.3),size=.75) +
scale_color_manual(values = c("steelblue", "gray", "darkred")) +
scale_y_continuous(name = "Mean Rating (1-7)")