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.` 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> 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://maps.google.com/?q=Fred+Hutchinson+Canc&entry=gmail&source=g>er > 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 > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel