Dear Jason and Juan, At 09:11 AM 1/14/2003 +1300, Jason Turner wrote:
Here's a pretty simple expression using a for loop over columns (and testing for numeric data):On Mon, Jan 13, 2003 at 05:15:02PM +0000, juan pablo perez wrote: > what should I do to replace in a data frame NA�s with zeroes?I use lapply > dd <- data.frame(a=c(1,2,NA,4),b=c(NA,2,3,4)) > dd a b 1 1 NA 2 2 2 3 NA 3 4 4 4 > dd2 <- data.frame(lapply(dd,function(x,...){x[is.na(x)] <- 3.14159 ; x})) > dd2 a b 1 1.00000 3.14159 2 2.00000 2.00000 3 3.14159 3.00000 4 4.00000 4.00000 That will generate a warning message for each non-numeric column in your data frame. A tidier way is left as an exercise. ;)
for(i in 1:ncol(dd)) if(is.numeric(dd[,i])) dd[is.na(dd[,i]), i] <- 0
I hope that this helps,
John
____________________________
John Fox
Department of Sociology
McMaster University
email: [EMAIL PROTECTED]
web: http://www.socsci.mcmaster.ca/jfox
______________________________________________
[EMAIL PROTECTED] mailing list
http://www.stat.math.ethz.ch/mailman/listinfo/r-help
