From hpages at fredhutch.org  Wed Nov 29 19:13:47 2017
From: hpages at fredhutch.org (=?ISO-8859-1?Q?Herv=E9_Pag=E8s?=)
Date: Wed, 29 Nov 2017 10:13:47 -0800
Subject: [Rd] binary form of is() contradicts its unary form
Message-ID: <5A1EF8DB.6080401@fredhutch.org>

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 Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



[Rd] binary form of is() contradicts its unary form
=?ISO-8859-1?Q?Herv=E9_Pag=E8s?=