[R] APPLY as alternate to FOR loop?

From: zack holden <zack_holden_at_hotmail.com>
Date: Mon, 31 Mar 2008 04:32:22 +0000

Dear list,
Below I've written a clunky for loop that counts NA's in a row, replacing all with NA if there are more than 3 missing values, or keeping the values if 4 or more are present. This is sample code from a very large dataframe I'm trying to clean up.  

I know there are many simpler more elegant solutions to this little problem.  

Would someone be willing to show me how to create a function that I can APPLY to each row rather than looping? I've tried and can't get it.  

Thank you,
Zack  

################################################# Count NA's in each row. IF > 3 NA's in a row, make all NA########################################################### 
##  test dataframe #######x1 <- c(1,NA,NA,NA,NA,1,2,2)x2 <- c(1,NA,NA,NA,NA,1,2,1)x3 <- c(1,NA,1,1,1,1,1,5)x4 <- c(1,NA,NA,NA,NA,NA,NA,5)x <- rbind(x1,x2,x3,x4)test <- rowSums(is.na(x))           ## count numer of NA's in rowx <- cbind(x, test)                 ## add row NA count to datax <- data.frame(x)                  ## make dataframe
 
 

# FOR LOOP to apply across all rows of dataframe -- for(i in 1:nrow(x)) {if(x[i,9] > 4) {x[i,1:7] <- NA} else { x[i,1:7] <- x[i,1:7]i = i+1}}

#####################################################
	[[alternative HTML version deleted]]

______________________________________________
R-help_at_r-project.org mailing list
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. Received on Mon 31 Mar 2008 - 04:41:14 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 31 Mar 2008 - 06:30:24 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive