Hi Mehmet,

On 11/29/2017 11:22 AM, Suzen, Mehmet wrote:
Hi Herve,

I think you are confusing subclasses and classes. There is no
contradiction. `is` documentation
is very clear:

`With one argument, returns all the super-classes of this object's class.`

Yes that's indeed very clear. So if "list" is a super-class
of "data.frame" (as reported by is(data.frame())), then
is(data.frame(), "list") should be TRUE.

With S4 classes:

  setClass("A")
  setClass("B", contains="A")

  ## Get all the super-classes of B.
  is(new("B"))
  # [1] "B" "A"

  ## Does a B object inherit from A?
  is(new("B"), "A")
  # [1] TRUE

Cheers,
H.


Note that object class is always `data.frame` here, check:

 > class(data.frame())
[1] "data.frame"
 > is(data.frame(), "data.frame")
[1] TRUE

Best,
Mehmet





On 29 Nov 2017 19:13, "Hervé Pagès" <hpa...@fredhutch.org
<mailto:hpa...@fredhutch.org>> wrote:

    Hi,

    The unary forms of is() and extends() report that data.frame
    extends list, oldClass, and vector:

       > is(data.frame())
       [1] "data.frame" "list"       "oldClass"   "vector"

       > extends("data.frame")
       [1] "data.frame" "list"       "oldClass"   "vector"

    However, the binary form of is() disagrees:

       > is(data.frame(), "list")
       [1] FALSE
       > is(data.frame(), "oldClass")
       [1] FALSE
       > is(data.frame(), "vector")
       [1] FALSE

    while the binary form of extends() agrees:

       > extends("data.frame", "list")
       [1] TRUE
       > extends("data.frame", "oldClass")
       [1] TRUE
       > extends("data.frame", "vector")
       [1] TRUE

    Who is right?

    Shouldn't 'is(object, class2)' be equivalent
    to 'class2 %in% is(object)'? Furthermore, is there
    any reason why 'is(object, class2)' is not implemented
    as 'class2 %in% is(object)'?

    Thanks,
    H.

    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Canc
    
<https://urldefense.proofpoint.com/v2/url?u=https-3A__maps.google.com_-3Fq-3DFred-2BHutchinson-2BCanc-26entry-3Dgmail-26source-3Dg&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=AptypGUf1qnpkFcOc1eU_vdGSHsush3RGVUyjk7yDu8&s=sTr3VPPxYCZLOtlBS3DToP4-Wi44EOLs99gJcV932b0&e=>er
    Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpa...@fredhutch.org <mailto:hpa...@fredhutch.org>
    Phone:  (206) 667-5791
    Fax:    (206) 667-1319

    ______________________________________________
    R-devel@r-project.org <mailto:R-devel@r-project.org> mailing list
    https://stat.ethz.ch/mailman/listinfo/r-devel
    
<https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Ddevel&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=AptypGUf1qnpkFcOc1eU_vdGSHsush3RGVUyjk7yDu8&s=OzNPwqjAWVsXOGKMCmd4Fa7Udcm21ewfJmUN78LenQY&e=>


--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to