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

Nordlund, Dan (DSHS/RDA) NordlDJ at dshs.wa.gov
Thu Jul 24 18:30:54 CEST 2008


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Gabor Csardi
> Sent: Thursday, July 24, 2008 8:39 AM
> To: Kunzler, Andreas
> Cc: r-help at r-project.org; r-help-bounces at r-project.org; 
> Richard.Cotton at hsl.gov.uk
> Subject: Re: [R] NAs - NAs are not allowed in subscripted assignments
> 
> On Thu, Jul 24, 2008 at 04:45:14PM +0200, Kunzler, Andreas wrote:
> > Hy Richie, thank you for the quick response.
> > 
> > Unfortunately my problems hold on.
> > 
> > Once again: 2 vectors (numeric) including NAs 
> > My intention: I want to replace the values of vector a that 
> are smaller
> > than 2 and larger than 3 into NAs only in case vector b equals 1
> > 
> > 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?
> 
> Btw. I assume you mean replacing values that are either smaller than
> 2 _OR_ larger than 3, no number is smaller than 2 _AND_ larger than 3,
> at least if we consider the usual ordering on numbers.
> 
> Best,
> Gabor
> 
> [...]
> 
> -- 
> Csardi Gabor <csardi at rmki.kfki.hu>    UNIL DGM

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?

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
 
 



More information about the R-help mailing list