with NAs it's always safest to use the construction 

if(is.na(foo))

rather than

if(foo==NA)

cheers          Bob Kinley



tom wright <tom@maladmin.com> 
Sent by: r-help-bounces@stat.math.ethz.ch
05/08/2005 12:30

To
r-help@stat.math.ethz.ch
cc

Subject
[R] use of NA's






Can someone please explain why this works: 

> > d<-c(0,2,3,2,0,3,4,0,0,0,0,0)
> > d.mat<-matrix(data=d,nrow=4,ncol=3,byrow=TRUE)
> > for(i in 1:length(d.mat[1,])){
> + d.mat[,i][d.mat[,i]==0]<-mean(d.mat[,i][d.mat[,i]>0])
> + }

Whereas: 

> d<-c(0,2,3,2,0,3,4,0,0,0,0,0)
> d.mat<-matrix(data=d,nrow=4,ncol=3,byrow=TRUE)
> d.mat[d.mat==0]<-NA
> for(i in 1:length(d.mat[1,])){
+ d.mat[,i][d.mat[,i]==NA]<-mean(d.mat[,i],na.rm=TRUE)
+ }
dosnt

Thanks
Tom

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! 
http://www.R-project.org/posting-guide.html


	[[alternative HTML version deleted]]


