Re: [R] NAs - NAs are not allowed in subscripted assignments

From: Gabor Csardi <csardi_at_rmki.kfki.hu>
Date: Thu, 24 Jul 2008 11:58:32 -0500

On Thu, Jul 24, 2008 at 09:30:54AM -0700, Nordlund, Dan (DSHS/RDA) wrote: [...]
> > > a <- c(rep(seq(1,4),4),NA,NA)
> > > b <- c(rep(seq(1,2),7),NA,NA,1,2)
> >
> > Andreas,
> >
> > what is wrong with
> >
> > a[ (a < 2 | a > 3) & b==1 ] <- NA
> >
> > ? Isn't this what you want?
> >
[...]
>
> As I mentioned in my response to this thread, there are some things I don't quite understand with logical indexing. Using the above example,
>
> > a[ (a < 2 | a > 3) & b==1 ]
>
> returns
>
> [1] 1 1 1 1 NA NA
>
> Where do the NA values come from?

This is not really about logical indexing, just operations on numeric and logical vectors, and how they handle NA values. Just keep in mind that NA means that we don't know the actual value. All operations were desinged (I believe) with this in mind. Here is some help:

> NA == 1

[1] NA
> class(NA == 1)

[1] "logical"

This is NA, obviously, as _we don't know_ whether NA is equal to 1 or not.

> TRUE & NA

[1] NA
> FALSE | NA

[1] NA

The same applies here, for the result we would need to know whether NA is TRUE or FALSE. However, we have

> FALSE & NA

[1] FALSE
> TRUE | NA

[1] TRUE In these cases the result can be calculated without knowing what actually NA is.

Logical indexing is simple, for every TRUE value in the logical vector we choose the corresponding element from the indexed vector. If we index with NA, then the chosen element is NA as well.

> (1:5)[ c(T,T,T,T,T) ]

[1] 1 2 3 4 5
> (1:5)[ c(T,T,T,F,T) ]

[1] 1 2 3 5
> (1:5)[ c(T,T,T,F,NA) ]

[1] 1 2 3 NA
> (1:5)[ c(NA,T,T,F,NA) ]

[1] NA 2 3 NA

Does this help? Best,
Gabor

> Dan
>
> Daniel J. Nordlund
> Washington State Department of Social and Health Services
> Planning, Performance, and Accountability
> Research and Data Analysis Division
> Olympia, WA 98504-5204
>
>
>
> ______________________________________________
> 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.

-- 
Csardi Gabor <csardi_at_rmki.kfki.hu>    UNIL DGM

______________________________________________
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 Thu 24 Jul 2008 - 17:05:02 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 Thu 24 Jul 2008 - 18:32:22 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