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.

Reply via email to