Dear R experts,
I am using a 'for' loop to apply commands to multiple datasets (each file is one participant). The only one not working is the command that identifies zeros in my datasets and changes them to NAs. But when I look at the output, zeros ("0") are still present. Surprisingly, the functions work fine when I apply them to a single dataset (outside the loop). I've tried:
all.files <- list.files(".")
txt.files <- grep("threat.txt",all.files,value=T)
for(i in txt.files){
d <- read.table(paste(i,sep=""),header=F)
d[d==0] <- NA #replace zeros with NA
write.table(d, paste0(i,".tlbs.txt"), quote=FALSE, row.names=TRUE)}
d<-d[ ,-c(10,11)]
d2<-d[complete.cases(d), ]
d2$V4<-as.numeric(d2$V4)
congruent <- (d2$V4 == 1) == TRUE
x <- get_tlbs(d2$V14, congruent, prior_weights = NULL, method = "weighted", fill_gaps = FALSE)
write.table(x, paste0(i,".tlbs.txt"), quote=FALSE, row.names=TRUE)}
I've also tried:
for(i in txt.files){
d <- read.table(paste(i,sep=""),header=F)
if (0 %in% d)
{replace_with_na(d,replace = list(x = 0))} # replace zeros with NA
d<-d[ ,-c(10,11)]
d2<-d[complete.cases(d), ]
d2$V4<-as.numeric(d2$V4)
congruent <- (d2$V4 == 1) == TRUE
x <- get_tlbs(d2$V14, congruent, prior_weights = NULL, method = "weighted", fill_gaps = FALSE)
write.table(x, paste0(i,".summaryoutput.txt"), quote=FALSE, row.names=TRUE)}
Thank you for your help.
Sincerely
Helen