[R] Code bug unresolved involving if condition

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Apr 25 17:54:32 CEST 2003


On Fri, 25 Apr 2003 vincent.stoliaroff at socgen.com wrote:

> 
> Thanks a lot
> I had corrected that already after thinking for a while about the cause of
> the bug
> 
> However I still have some trouble in trying to set the Matrix[i,j+1] term
> to Missingness.

Why?  Setting it to NA works.

> 
> I am not sure how to use the generic function `is.na<-' which sets elements
> to `NA'.
> 
>       {if (is.na(Matrix[i,j])) (is.na(Matrix[i,j+1])<-1)}
> 
> does not work to set my  Matrix[i,j+1]  term to NA
> 
> Thanks in advance for any help
> 
> 
> 
> 
> |---------+---------------------------->
> |         |           ripley at stats.ox.a|
> |         |           c.uk             |
> |         |                            |
> |         |           04/25/03 05:34 PM|
> |         |                            |
> |---------+---------------------------->
>   >------------------------------------------------------------------------------------------------------------------------------|
>   |                                                                                                                              |
>   |       To:       Vincent STOLIAROFF/fr/socgen at socgen                                                                          |
>   |       cc:       r-help at stat.math.ethz.ch                                                                                     |
>   |       Subject:  Re: [R] Code bug unresolved involving if condition                                                           |
>   >------------------------------------------------------------------------------------------------------------------------------|
> 
> 
> 
> The message is both pleasant and accurate!  It indicates that you have
> made an error, and tells you what the error is.
> 
> foo == NA is always missing, since NA denotes a missing value.
> Use is.na(foo): see ?is.na.
> 
> On Fri, 25 Apr 2003 vincent.stoliaroff at socgen.com wrote:
> 
> > Hi R lovers!
> >
> > I am a beginner in coding with R so my question may be very easily solved
> > but I don't know how.
> >
> > I have written the following function in a .txt file
> >
> >
> > ClearDelta <- function(Matrix)
> > {
> > ncol<-ncol(Matrix);nrow<-nrow(Matrix);
> > for (i in 1:nrow) {
> >                   for (j in 1:(ncol-1))
> >                         {if (Matrix[i,j]==NA) (NA->Matrix[i,j+1])}
> >                   }
> > }
> >
> > I can charge it with the source() command
> > But I get the following message when applied to a matrix
> >
> > > ClearDelta(MatCor)
> > Error in if (Matrix[i, j] == NA) (Matrix[i, j + 1] <- NA) :
> >         missing value where logical needed
> >
> > MatCor is the following Matrix
> >
> > > MatCor
> >            [,1]         [,2]       [,3]
> > [1,]         NA          0.9870676  0.04648933
> > [2,] 0.98706757  1.0000000 -0.17353590
> > [3,] 0.04648933 -0.1735359  1.00000000
> >
> > Do you know why I get such an unpleasant message from so polite a software?
> >
> > Thanks to anybody who could help.
> 
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
> 
> 
> 
> 
> 
> 
> 
> *************************************************************************
> Ce message et toutes les pieces jointes (ci-apres le "message") sont
> confidentiels et etablis a l'intention exclusive de ses destinataires.
> Toute utilisation ou diffusion non autorisee est interdite. 
> Tout message electronique est susceptible d'alteration. 
> La SOCIETE GENERALE et ses filiales declinent toute responsabilite au 
> titre de ce message s'il a ete altere, deforme ou falsifie.
> 				********
> This message and any attachments (the "message") are confidential and
> intended solely for the addressees.
> Any unauthorised use or dissemination is prohibited. 
> E-mails are susceptible to alteration.   
> Neither SOCIETE GENERALE nor any of its subsidiaries or affiliates 
> shall be liable for the message if altered, changed or falsified. 
> 
> *************************************************************************
> 
> 

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list