PRE TASK ANALYSIS
psychopy_csv <- read.csv("5d51ffd641a6aa0019ca73df_BRAIN_E_final_2022-06-20_13h35.39.304_copy.csv")
pre_task_df <- psychopy_csv[c(2:42), c(26,35:36,42:45)]
# pre_task_df
# head(pre_task_df)
# change column header in df
names(pre_task_df)[2] <- "key_resp"
names(pre_task_df)[3] <- "rt"
# head(pre_task_df)
# calculate average pre task rt
pre_rt_summary <- summary(pre_task_df$rt)
# pre_rt_summary
mean_rt_pre <- pre_rt_summary[4]
mean_rt_pre
## Mean
## 1.072775
# calculate accuracy
count_correct = 0;
for (row in 1:nrow(pre_task_df)){
curr_key = pre_task_df$key_resp[row]
curr_emotion = pre_task_df$emotion[row]
if ( (curr_key=="s" && curr_emotion=="happy") || (curr_key=="k" && curr_emotion=="angry") ){
count_correct = count_correct+1
}
}
# accuracy out of 40
count_correct
## [1] 38
perc_accuracy <- (count_correct/40)*100
paste("Pre-Task Accuracy: ", perc_accuracy, "%", sep="")
## [1] "Pre-Task Accuracy: 95%"
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.
main_task_df <- psychopy_csv[ c(43:303), c(26,42:44,47,48) ]
# remove rows with NA
main_task_df <- na.omit(main_task_df)
# head(main_task_df)
names(main_task_df)[5] <- "key_resp"
names(main_task_df)[6] <- "rt"
head(main_task_df)
## participant image_file race gender key_resp rt
## 44 5d51ffd641a6aa0019ca73df CFD-BF-024-002-N.jpg B F k 0.969
## 46 5d51ffd641a6aa0019ca73df CFD-WM-024-015-N.jpg W M s 0.999
## 48 5d51ffd641a6aa0019ca73df CFD-BM-024-001-N.jpg B M k 1.331
## 50 5d51ffd641a6aa0019ca73df CFD-BF-023-010-N.jpg B F k 1.139
## 52 5d51ffd641a6aa0019ca73df CFD-BF-025-002-N.jpg B F k 3.103
## 54 5d51ffd641a6aa0019ca73df CFD-WF-006-002-N.jpg W F k 1.734
summary_main_rt <- summary(main_task_df$rt)
summary_main_rt
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.6070 0.9045 1.1100 1.5535 1.6600 16.2780
main_mean_rt <-round(summary_main_rt[4], digits=3)
paste("Mean reaction time, main task: ", main_mean_rt , " sec", sep="")
## [1] "Mean reaction time, main task: 1.554 sec"
bfp = 0
bfn = 0
bmp = 0
bmn = 0
wfp = 0
wfn = 0
wmp = 0
wmn = 0
afp = 0
afn = 0
amp = 0
amn = 0
nrow(main_task_df)
## [1] 130
head(main_task_df)
## participant image_file race gender key_resp rt
## 44 5d51ffd641a6aa0019ca73df CFD-BF-024-002-N.jpg B F k 0.969
## 46 5d51ffd641a6aa0019ca73df CFD-WM-024-015-N.jpg W M s 0.999
## 48 5d51ffd641a6aa0019ca73df CFD-BM-024-001-N.jpg B M k 1.331
## 50 5d51ffd641a6aa0019ca73df CFD-BF-023-010-N.jpg B F k 1.139
## 52 5d51ffd641a6aa0019ca73df CFD-BF-025-002-N.jpg B F k 3.103
## 54 5d51ffd641a6aa0019ca73df CFD-WF-006-002-N.jpg W F k 1.734
for (row in 1:nrow(main_task_df)){
key = main_task_df$key_resp[row]
race = main_task_df$race[row]
gender = main_task_df$gender[row]
if (key=="s"){
#selected positive
if (race=="B"){
if (gender=="F"){
bfp = bfp+1
} else if (gender=="M"){
bmp = bmp+1
}
} else if (race=="W"){
if (gender=="F"){
wfp = wfp+1
} else if (gender=="M"){
wmp = wmp+1
}
} else if (race=="A"){
if (gender=="F"){
afp = afp+1
} else if (gender=="M"){
amp = amp+1
}
}
}else if (key=="k"){
#selected negative
if (race=="B"){
if (gender=="F"){
bfn = bfn+1
} else if (gender=="M"){
bmn = bmn+1
}
} else if (race=="W"){
if (gender=="F"){
wfn = wfn+1
} else if (gender=="M"){
wmn = wmn+1
}
} else if (race=="A"){
if (gender=="F"){
afn = afn+1
} else if (gender=="M"){
amn = amn+1
}
}
}
} #end for loop
counts <- c(afp,afn, amp, amn, wfp, wfn, wmp, wmn, bfp, bfn, bmp, bmn)
col_names <- c('afp','afn', 'amp', 'amn', 'wfp', 'wfn', 'wmp', 'wmn', 'bfp', 'bfn', 'bmp', 'bmn')
main_counts_df <- data.frame( t(counts) )
colnames(main_counts_df) <- col_names
main_counts_df
## afp afn amp amn wfp wfn wmp wmn bfp bfn bmp bmn
## 1 1 1 0 2 8 20 9 21 7 23 13 18
# CATCH TRIAL ACCURACY
catch_correct = 0
sum( main_counts_df[1,] )
## [1] 123
# calculate catch trial accuracy
for (row in 1:nrow(main_task_df)){
if (main_task_df$race[row]=="catchNeg"){
if(main_task_df$key_resp[row]=="k"){
catch_correct = catch_correct+1
}
}else if (main_task_df$race[row]=="catchPos"){
if(main_task_df$key_resp[row]=="s"){
catch_correct = catch_correct+1
}
}
}
catch_correct
## [1] 7
paste("catch trial accuracy: ", catch_correct, "/7", sep="")
## [1] "catch trial accuracy: 7/7"
MAIN TASK PLOT
# PLOTTING
bar_graph_df <- data.frame(category=col_names, counts)
# bar_graph_df
#
# ggplot(bar_graph_df, aes(x=category, y=counts)) +
# geom_bar(stat="identity")
bar_graph <- ggplot(data=bar_graph_df, aes(x=category, y=counts, fill=category ) ) +
geom_bar(stat="identity") +
scale_fill_manual(values = c("blue", "red",
"blue", "red",
"blue", "red",
"blue", "red",
"blue", "red",
"blue", "red") )
bar_graph
