From: Nordlund, Dan (DSHS/RDA) <NordlDJ_at_dshs.wa.gov>

Date: Thu, 24 Jul 2008 10:39:34 -0700

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:48:33 GMT

Date: Thu, 24 Jul 2008 10:39:34 -0700

> -----Original Message-----

*> From: Gabor Csardi [mailto:csardi_at_rmki.kfki.hu]
**> Sent: Thursday, July 24, 2008 9:59 AM
**> To: Nordlund, Dan (DSHS/RDA)
**> Cc: r-help_at_r-project.org
**> Subject: Re: [R] NAs - NAs are not allowed in subscripted assignments
**>
**> 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
**>
*

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. Received on Thu 24 Jul 2008 - 17:48:33 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 - 19:32:25 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.
*