Hello, I have observed the following odd behavior of "is.na( )" and hope someone can give me an explanation Example: X1=rep(1:2,5)[-1] X2=rep(1:5,rep(2,5))[-1] y= runif(9) y[3]=NA xtabs(y~x1+x2) Now xtabs(is.na(y)~x1+x2) says that cell 2,2 is NA x2 x1 1 2 1 0 0 2 0 1 3 0 0 4 0 0 5 0 0 Whereas xtabs(!is.na(y)~x1+x2) says that all but cell 1,1 and 2,2 are not NA x2 x1 1 2 1 0 1 2 1 0 3 1 1 4 1 1 5 1 1 An explanation will be much appriciated
There isn't combination of c(1, 1), so is NA: tapply(y, list(X1, X2), sum) On Wed, Jan 26, 2011 at 9:04 AM, René Holst <rene@constat.dk> wrote:> Hello, > > I have observed the following odd behavior of "is.na( )" and hope someone > can give me an explanation > Example: > X1=rep(1:2,5)[-1] > X2=rep(1:5,rep(2,5))[-1] > y= runif(9) > y[3]=NA > xtabs(y~x1+x2) > > Now > > xtabs(is.na(y)~x1+x2) says that cell 2,2 is NA > > x2 > x1 1 2 > 1 0 0 > 2 0 1 > 3 0 0 > 4 0 0 > 5 0 0 > > Whereas > > xtabs(!is.na(y)~x1+x2) says that all but cell 1,1 and 2,2 are not NA > x2 > x1 1 2 > 1 0 1 > 2 1 0 > 3 1 1 > 4 1 1 > 5 1 1 > > An explanation will be much appriciated > > ______________________________________________ > R-help@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. >-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
Hi, This isn't an issue with is.na, you get the same if you use aa = c(1,1,0,1,1,1,1,1,1) bb = abs(aa - 1) xtabs(aa~x1+x2) xtabs(bb~x1+x2) it is because you do not have any data in (1,1), i.e. there is no case where x1 = 1 and x2 = 1 so xtabs is putting a zero in that cell Hope this helps Martyn -----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Ren? Holst Sent: 26 January 2011 11:05 To: r-help at r-project.org Subject: [R] a problem with is.na Hello, I have observed the following odd behavior of "is.na( )" and hope someone can give me an explanation Example: X1=rep(1:2,5)[-1] X2=rep(1:5,rep(2,5))[-1] y= runif(9) y[3]=NA xtabs(y~x1+x2) Now xtabs(is.na(y)~x1+x2) says that cell 2,2 is NA x2 x1 1 2 1 0 0 2 0 1 3 0 0 4 0 0 5 0 0 Whereas xtabs(!is.na(y)~x1+x2) says that all but cell 1,1 and 2,2 are not NA x2 x1 1 2 1 0 1 2 1 0 3 1 1 4 1 1 5 1 1 An explanation will be much appriciated ______________________________________________ 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. ________________________________________________________________________ This e-mail has been scanned for all viruses by Star.\ _...{{dropped:12}}