[R] warnng to an error....

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Mon Jun 19 09:45:48 CEST 2023


>>>>> akshay kulkarni 
>>>>>     on Sat, 17 Jun 2023 18:35:53 +0000 writes:

    > Dear Bert, Duncan's theory is working....probably the same
    > as yours...

"theory" .. well *truth*.



Note that I wrote a blog post I had hope would be read more
( --> and be cited more .. when helping peopling with such problems ;-))

Simple search ("google") for  "class think R blog"
or directly
  https://blog.r-project.org/2019/11/09/when-you-think-class.-think-again/

To say it again:   Using  something like		

	if(... class(x) == "<cls>" ..)

is almost always (*) bad code.
Everyone should learn about  inherits() and why sane R code
should use that instead.

---
*)  It may be ok, e.g., when `x` was very expliclitly
    constructed in the same part of code a bit earlier

Martin


    > THanking you, Yours sincerely, AKSHAY M KULKARNI
    > ________________________________ From: Bert Gunter
    > <bgunter.4567 using gmail.com> Sent: Saturday, June 17, 2023
    > 11:28 PM To: akshay kulkarni <akshay_e4 using hotmail.com> Cc: R
    > help Mailing list <r-help using r-project.org> Subject: Re: [R]
    > warnng to an error....

    > What is class(x) ??

    > I think you need to (re?) learn about S3 classes, which
    > can in general be vectors. See ?class (the S3 portion) or
    > any tutorial on S3 classes in R. I have no idea what you
    > are trying to do, but I *suspect* it may be accomplished
    > through S3 inheritance rather than changing the class
    > vector. That is just a guess, however.

    > -- Bert

    > On Sat, Jun 17, 2023 at 10:27 AM akshay kulkarni
    > <akshay_e4 using hotmail.com<mailto:akshay_e4 using hotmail.com>>
    > wrote: Dear members, AN update: I have changed the if
    > clause to:

    > if(class(x)[1] == "xts") || class(x)[2] == "zoo") {code}

    > but am bootless.....

    > PLease help...

    > THanking you, Yours sincerely, AKSHAY M KULKARNI

    > ________________________________ From: R-help
    > <r-help-bounces using r-project.org<mailto:r-help-bounces using r-project.org>>
    > on behalf of akshay kulkarni
    > <akshay_e4 using hotmail.com<mailto:akshay_e4 using hotmail.com>>
    > Sent: Saturday, June 17, 2023 10:46 PM To: R help Mailing
    > list <r-help using r-project.org<mailto:r-help using r-project.org>>
    > Subject: [R] warnng to an error....

    > Dear members,

    >                           I have the following code:

    >> FUN(OHLCDataEP[[63]])
    > Error in (class(x) == "xts") || (class(x) == "zoo") :
    > 'length = 2' in coercion to 'logical(1)'
    >> traceback()
    > 2: ygix(x, "c") at <tmp>#9 1: FUN(OHLCDataEP[[63]])
    >> class(OHLCDataEP[[63]])
    > [1] "xts" "zoo"

    > The following is in ygix() :

    > if((class(x) == "xts") || (class(x) == "zoo")

    > I think this would have been a warning
    > (https://stackoverflow.com/questions/72848442/r-warning-lengthx-2-1-in-coercion-to-logical1)
    > but I am on a ubuntu22.04 machine with R 4.3.0.

    > What should I do? Change it to: if((class(x)[1] == "xts")
    > || (class(x)[2] == "zoo")) {code}...

    > or is there any workaround?

    > THanking you, Yours sincerely, AKSHAY M KULKARNI
    > [https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon@2.png?v=73d79a89bded]<https://stackoverflow.com/questions/72848442/r-warning-lengthx-2-1-in-coercion-to-logical1>
    > R Warning 'length(x) = 2 > 1' in coercion to
    > 'logical(1)'<https://stackoverflow.com/questions/72848442/r-warning-lengthx-2-1-in-coercion-to-logical1>
    > Using R 4.1.3 I observe: var <- 0 >
    > if(is.data.frame(var) || is.vector(var)) var <-
    > as.matrix(var) > is.null(var) || (!is.matrix(var)
    > && var == 0) || (dim(var)==c(1,1) &&amp...
    > stackoverflow.com<http://stackoverflow.com> 



    >         [[alternative HTML version deleted]]

    > ______________________________________________
    > R-help using r-project.org<mailto:R-help using r-project.org> mailing
    > list -- To UNSUBSCRIBE and more, see
    > 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.

    >         [[alternative HTML version deleted]]

    > ______________________________________________
    > R-help using r-project.org<mailto:R-help using r-project.org> mailing
    > list -- To UNSUBSCRIBE and more, see
    > 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.

    > 	[[alternative HTML version deleted]]

    > ______________________________________________
    > R-help using r-project.org mailing list -- To UNSUBSCRIBE and
    > more, see 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.



More information about the R-help mailing list