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 [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.