[R] different functions on different vector subsets

Berton Gunter gunter.berton at gene.com
Thu Nov 10 18:00:18 CET 2005


The error messages mean what they say.

> I am trying to apply two different functions on on a vector as follow:
> a<-c(NA,1,2,3,-3,-4,-6)
> if a>0 I would like to raise it by the power of 2: 2^a and if 
> the a<0 I
> would like to have the inverse value, i.e., -1/2^a.
## I assume you mean 1/(2^a). If not, modify the following appropriately.

2^(a*sign(a))  ## will do

As for your error message for:
> a[a<0]<-(-1)/2^a[a<0]

a<0 has an NA at the first index and so R doesn't know what index you want
to assign the value to. Ergo the error message.

-- Bert Gunter
Genentech Non-Clinical Statistics
South San Francisco, CA
 
"The business of the statistician is to catalyze the scientific learning
process."  - George E. P. Box
 
 

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Ron Ophir
> Sent: Thursday, November 10, 2005 7:26 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] different functions on different vector subsets
> 
> Hi,
> I am trying to apply two different functions on on a vector as follow:
> a<-c(NA,1,2,3,-3,-4,-6)
> if a>0 I would like to raise it by the power of 2: 2^a and if 
> the a<0 I
> would like to have the inverse value, i.e., -1/2^a.
> so I thought of doing it two steps:
> a[a>0]<-2^[a>0]
> a[a<0]<-(-1)/2^a[a<0]
> I got the following error
> Error: NAs are not allowed in subscripted assignments
> any other ma>nupulation that I did with is.na() but did not succeed.
> What is funny that the two sides of the assignment work and return the
> same vector size:
> > 2^a[a>0]
> [1] NA  2  4  8
> > a[a>0]
> [1] NA  1  2  3
> 
> I found a solution in term of:
> sapply(a,function(x) if (is(s.na)) NA else if (x<0) (-1)/2^x else 2^x)
> but still I would like to understand why the solution above did not
> work. I think is more ellegant.
> my R version is:
> > sessionInfo()
> R version 2.2.0, 2005-10-06, i386-pc-mingw32 
>  
> attached base packages:
> [1] "methods"   "stats"     "graphics"  "grDevices" "utils"    
> "datasets" 
> [7] "base" 
> Thanks,
> Ron
>  
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at 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
>




More information about the R-help mailing list