#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # READ RAW DATA INTO R --> SAVE RDATA SUMMARY FOR RELIABILITY AND OTHER CALCULATIONS # 09/10/2017 # HANNE HUYGELIER #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #============================================================================================ # LIBRARIES #============================================================================================ library(lme4) library(plyr) library(psych) library(moments) #============================================================================================ # SET Data Directory #============================================================================================ DataFolder = "C://Users//u0097836//Documents//EFT_Project//Data Manuscript 2//Study 1//" #============================================================================================ # FUNCTION TO READ IN DATA #============================================================================================ # FOR CSV FILES: ReadCSVFile <- function(folder, sep = ",", pattern = ".csv", strsplitsign = "_"){ files <- list.files(path = folder, pattern = pattern, all.files = F, full.names = F) dataframe <- data.frame() for(f in 1:length(files)){ data <- read.csv(paste(folder, files[f], sep = ""), header = TRUE, sep = sep, stringsAsFactors = FALSE) data$Subject <- as.integer(unlist(strsplit(files[f], strsplitsign))[1]) dataframe <- rbind(dataframe, data) } return(dataframe) } # FOR ; FILES: ReadCSVFile2 <- function(folder, sep = ";", pattern = ".csv", strsplitsign = "_"){ files <- list.files(path = folder, pattern = pattern, all.files = F, full.names = F) dataframe <- data.frame() for(f in 1:length(files)){ data <- read.csv2(paste(folder, files[f], sep = ""), header = TRUE, sep = sep, stringsAsFactors = FALSE) data$Subject <- as.integer(unlist(strsplit(files[f], strsplitsign))[1]) dataframe <- rbind(dataframe, data) } return(dataframe) } #============================================================================================ # SUMMARIZE LEFT DATA #============================================================================================ #---------------------------------------- # # READ RAW DATA INTO A DATAFRAME: #---------------------------------------- LEFT <- ReadCSVFile(paste0(DataFolder, "EFT//"), pattern = "PR.csv") # If participant needs more than 1 response, accuracy is not 1: LEFT$Accuracy <- ifelse(LEFT$NumberofResponses > 1, 0, 1) # Descriptives of RT's for accurate trials: describe(LEFT$FirstResponseRT[LEFT$Accuracy == 1]) # TEST SKEW OF RT's: agostino.test(LEFT$FirstResponseRT[LEFT$Accuracy == 1], alternative = "two.sided") #----------------------------------------------------- # MAKE A SUMMARY OF ONLY THE DIFFICULT LEFT ITEMS #----------------------------------------------------- # WHAT IS THE MEAN ACCURACY FOR EACH TEST ITEM? LEFTItems <- ddply(LEFT, c("ImageNames"), function(df)c(MeanAcc = mean(df$Accuracy), MedRT = median(df$FirstResponseRT))) # CHECK THE ASSOCIATION: plot(LEFTItems$MedRT, LEFTItems$MeanAcc) abline(h = 0.95, col = "red") abline(v = 2000, col = "red") # MAKE A FILTER FOR THE ITEMS: LEFTItems$Filter <- ifelse(LEFTItems$MedRT < 2000 & LEFTItems$MeanAcc >= 0.95, 0, 1) LEFTItems$Filter <- ifelse(LEFTItems$MeanAcc == 0, 0, LEFTItems$Filter) # Histogram of accuracy for those items: hist(LEFTItems$MeanAcc[LEFTItems$Filter == 1]) hist(LEFTItems$MedRT[LEFTItems$Filter == 1]) # HOW MANY ITEMS ARE THERE THEN? length(unique(LEFTItems$ImageNames[LEFTItems$Filter == 1])) # MERGE THIS INFO WITH LEFT RAW DATA: LEFT2 <- merge(LEFT, LEFTItems, by = "ImageNames") # REMOVE UNSELECTED ITEMS: LEFT2 <- LEFT2[LEFT2$Filter == 1, ] #----------------------------------------------------- # SPLIT DATA UP INTO TWO PARTS FOR RELIABILITY CHECKS #----------------------------------------------------- # LEFT 1 (N = 64): LEFT$Split <- ifelse(LEFT$ImageNames < 33, 0, 1) # LEFT 2 (N = 45): LEFT2$Split <- ifelse(LEFT2$ImageNames < median(unique(LEFT2$ImageNames)), 0, 1) #---------------------------------------- # SUMMARIZE LEFT DATA: #---------------------------------------- # SUMMARIZE DATA FOR RELIABILITY CHECK: LEFTReliability <- ddply(LEFT, c("Subject", "Split"), function(df)c(LEFTAcc = mean(df$Accuracy), LEFTRT = median(df$FirstResponseRT[df$Accuracy == 1]))) LEFTReliability2 <- ddply(LEFT2, c("Subject", "Split"), function(df)c(LEFTAcc = mean(df$Accuracy), LEFTRT = median(df$FirstResponseRT[df$Accuracy == 1]))) # SUMMARIZE DATA: LEFTValidity <- ddply(LEFT, c("Subject"), function(df)c(LEFTAcc = mean(df$Accuracy), LEFTRT = median(df$FirstResponseRT[df$Accuracy == 1]))) LEFTValidity2 <- ddply(LEFT, c("Subject"), function(df)c(LEFTAcc = mean(df$Accuracy), LEFTRT = median(df$FirstResponseRT[df$Accuracy == 1]))) #---------------------------------------- # SAVE SUMMARIES OF DATA: #---------------------------------------- save(LEFTReliability, file = paste0(DataFolder, "Summaries//LEFTReliabilityStudy1.Rdata")) save(LEFTReliability2, file = paste0(DataFolder, "Summaries//LEFTReliability2Study1.Rdata")) save(LEFTValidity, file = paste0(DataFolder, "Summaries//LEFTValidityStudy1.Rdata")) save(LEFTValidity2, file = paste0(DataFolder, "Summaries//LEFTValidity2Study1.Rdata")) #---------------------------------------- # CLEAN UP: #---------------------------------------- remove(LEFTReliability, LEFTReliability2, LEFTValidity, LEFTValidity2, LEFT, LEFT2) #============================================================================================ # SUMMARIZE COHERENT MOTION DATA #============================================================================================ # READ IN DATA: CM <- ReadCSVFile(folder = paste0(DataFolder, "CoherentMotion//"), pattern = "CoherentMotion.csv", strsplitsign = "C") # READ IN DATA: CM$Subject <- as.character(CM$Subject) CM$Subject <- substr(CM$Subject, 1, nchar(CM$Subject) - 1) CM <- CM[CM$MainPrac == 1, ] CM$TrialNumber <- rep(seq(from = 1, to = 400, by = 1), length(unique(CM$Subject)) + 1) CM$Split <- ifelse(CM$TrialNumber < 201, 0, 1) # SUMMARIZE DATA: CMReliability <- ddply(CM, c("Subject", "Split"), function(df)c(CMAcc = mean(df$Accuracy))) CMValidity <- ddply(CM, c("Subject"), function(df)c(CMAcc = mean(df$Accuracy))) #---------------------------------------- # SAVE SUMMARIES OF DATA: #---------------------------------------- save(CMReliability, file = paste0(DataFolder, "Summaries//CMReliability.Rdata")) save(CMValidity, file = paste0(DataFolder, "Summaries//CMValidity.Rdata")) #---------------------------------------- # CLEAN UP: #---------------------------------------- remove(CMReliability, CMValidity, CM) #============================================================================================ # SUMMARIZE NAVON DATA #============================================================================================ # READ IN DATA: NavonLocal <- ReadCSVFile2(folder = paste0(DataFolder, "Navon//"), sep = ";", pattern = "selAttLoc.csv", strsplitsign = "_") NavonGlobal <- ReadCSVFile2(folder = paste0(DataFolder, "Navon//"), sep = ";", pattern = "selAttGlob.csv", strsplitsign = "_") # REMOVE IMPOSSIBLE RT VALUES: NavonLocal <- NavonLocal[! NavonLocal$rt_raw < 0, ] NavonGlobal <- NavonGlobal[! NavonGlobal$rt_raw < 0, ] # RAW RT Distributions: describe(NavonGlobal$rt_raw[NavonGlobal$acc_raw == 1]) hist(NavonGlobal$rt_raw[NavonGlobal$acc_raw == 1]) describe(NavonLocal$rt_raw[NavonGlobal$acc_raw == 1]) hist(NavonLocal$rt_raw[NavonGlobal$acc_raw == 1]) # TEST FOR SKEWNESS: agostino.test(NavonGlobal$rt_raw[NavonGlobal$acc_raw == 1], alternative = "two.sided") agostino.test(NavonLocal$rt_raw[NavonGlobal$acc_raw == 1], alternative = "two.sided") # COMBINE DATA FROM TWO CONDITIONS: Navon <- rbind(NavonLocal, NavonGlobal) # SPLIT INTO TWO HALVES: Navon$Split <- ifelse(Navon$order < 50, 0, 1) # MAKE RELIABILITY SUMMARY: NavonReliability <- ddply(Navon, c("Subject", "cond", "Split"), function(df)c(NavonAcc = mean(df$acc_mean), NavonRT = median(df$rt_raw[df$acc_mean == 1]))) NavonValidity <- ddply(Navon, c("Subject"), function(df)c(NavonLocalAcc = mean(df$acc_raw[df$cond == "selAttLoc"]), NavonLocalRT = median(df$rt_raw[df$cond == "selAttLoc" & df$acc_mean == 1]), NavonGlobAcc = mean(df$acc_raw[df$cond == "selAttGlob"]), NavonGlobRT = median(df$rt_raw[df$cond == "selAttGlob" & df$acc_mean == 1]))) # SAVE SUMMARIES: save(NavonReliability, file = paste0(DataFolder, "Summaries//NavonReliability.Rdata")) save(NavonValidity, file = paste0(DataFolder, "Summaries//NavonValidity.Rdata"))