[R] Code bug unresolved involving if condition

vincent.stoliaroff@socgen.com vincent.stoliaroff at socgen.com
Fri Apr 25 17:45:18 CEST 2003


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.

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 confidentia... {{dropped}}



More information about the R-help mailing list