install.packages("tidyr") install.packages("dplyr") library(tidyr) library(dplyr) library(ggplot2) ## Import data RIR data <- readbulk::read_bulk(extension = "RIR_raw.iqdat", fun = utils::read.delim, verbose = TRUE) write.csv(data, file = "C:/Users/justine.macgoris/OneDrive/Bureau/RIR_raw.csv") ##Check all the trials for participant trial.summary <- data %>% dplyr::group_by(subject, blockcode) %>% dplyr::summarise(num_trials = n()) trial.summary ##Remove first and last block for each participant d2<- filter(data, blockcode != "SETUP") d3<- filter (d2, trialnum !="20") #filtering out correct trials #filtering out responses <100ms RIR.correct <- d3 %>% filter (correct == 1) %>% filter (latency > 100) ##Rename pain and noPain Block RIR.correct$PAIN_bloc <- ifelse(grepl("Pain_1500_start",RIR.correct$blockcode),'PAIN', ifelse(grepl("Pain_900_start", RIR.correct$blockcode), 'PAIN', ifelse(grepl("NoPain_900", RIR.correct$blockcode), 'NO_PAIN', ifelse(grepl("NoPain_1500", RIR.correct$blockcode), 'NO_PAIN','error')))) RIR.correct.no_pain <- filter(RIR.correct, PAIN_bloc== 'NO_PAIN') #counting number of rows per person ntrialsperson.pre <- RIR.correct.pain %>% group_by(subject) %>% summarise(num_trials = n()) #counting number of incorrect rows per person ntrialscorrectperson.pre <-RIR.correct.pain %>% group_by(subject) %>% summarise(num_trials = n()) #merge the two (after renaming num_trials which appears in both sets) names(ntrialscorrectperson.pre)[names(ntrialscorrectperson.pre)=="num_trials"] <- "num_trials_corr" percent.correct.person.pre <- merge(ntrialsperson.pre, ntrialscorrectperson.pre) #calculate percent correct as a variable in data "percent.correct.person" percent.correct.person.pre$per.corr <- ((percent.correct.person.pre$num_trials_corr/percent.correct.person.pre$num_trials)*100) ##Outliers 3SD for pain block descriptives.pre = group_by(RIR.correct.pain, subject) %>% summarise( mean = mean(latency), sd = sd(latency)) %>% mutate(lower_SD3 = mean - 3*sd, upper_SD3 = mean + 3*sd) joined_dat_SD3.pain = left_join(RIR.correct.pain, descriptives.pre, by = c("subject")) %>% filter(latency > lower_SD3, latency < upper_SD3) matrix_sdout3.pre_pain = joined_dat_SD3.pain %>% group_by(subject, correct) %>% summarise(mean_SdExcl3 = mean(latency), N_SdExcl3 = n()) nrow(RIR.correct.pain) - nrow(joined_dat_SD3.pain) 100-((nrow(joined_dat_SD3.pain)/nrow(RIR.correct.pain))*100) ##Outliers 3SD for no pain block descriptives.pre = group_by(RIR.correct.no_pain, subject) %>% summarise(mean = mean(latency), sd = sd(latency)) %>% mutate(lower_SD3 = mean - 3*sd, upper_SD3 = mean + 3*sd) joined_dat_SD3.nopain = left_join(RIR.correct.no_pain, descriptives.pre, by = c("subject")) %>% filter(latency > lower_SD3, latency < upper_SD3) matrix_sdout3.pre = joined_dat_SD3.nopain %>% group_by(subject, correct) %>% summarise(mean_SdExcl3 = mean(latency), N_SdExcl3 = n()) nrow(RIR.correct.no_pain) - nrow(joined_dat_SD3.nopain) 100-((nrow(joined_dat_SD3.nopain)/nrow(RIR.correct.no_pain))*100) ## Mean latency RT pain block Q.RIR_pain <- aggregate (list(response=(joined_dat_SD3.pain$latency)), list(subject=joined_dat_SD3.pain$subject, blockcode = joined_dat_SD3.pain$PAIN_bloc), mean,na.rm=T) ##Mean latency RT no pain block Q.RIR_nopain <- aggregate (list(response=(joined_dat_SD3.nopain$latency)), list(subject=joined_dat_SD3.nopain$subject, blockcode = joined_dat_SD3.nopain$PAIN_bloc), mean,na.rm=T) ##Merging together mergeblock <- full_join (Q.RIR_nopain, Q.RIR_pain) Q.RIR_END<- spread(mergeblock, blockcode, response) Q.RIR_END$Pain_interference<- (Q.RIR_END$NO_PAIN - Q.RIR_END$PAIN) write.csv(Q.RIR_END, file = "C:/Users/justine.macgoris/OneDrive/Bureau/Q.RIR_LAST23.csv") ##Error RIR Error <- d3 %>% filter (latency > 100) Perc_err <- Error %>% group_by(subject) %>% summarise(percent_errors = mean(correct == 0) * 100) Q.RIR_CPT1 <- aggregate (list(response=(joined_dat_SD3.RIR$latency)), list(subject=joined_dat_SD3.RIR$subject, blockcode = joined_dat_SD3.RIR$blockcode), mean,na.rm=T) Error1<-spread(Perc_err, key = PAIN_bloc, value = percent_errors) RIR_phase1 <- full_join(Q.RIR_END, Error1, by= c('subject'))