2016-03-08 42 views
1

我在R中使用默认包methods以定义面向对象的结构,并试图找出如何获取我的对象包含的类的列表。在R对象中显示父类

例如,让我们假设我的课高清如下:?

Tr1 = setRefClass("Tr1", contains = "Tr2") 

,我定义对象tr_ex = Tr1(),我怎么能得到哪些类tr_ex包含..我可以尝试is(tr_ex,"Tr2"),但它不是真的高效。

谢谢!

+0

'class()'返回对象的类,但不返回继承结构;然而,你可以在大多数情况下推断这一点。 –

回答

1

致电getClassDef您的对象的类。例如:

Tr2 <- setRefClass("Tr2", list(x="numeric")) 
Tr1 <- setRefClass("Tr1", contains="Tr2") 
tr_ex <- Tr1() 
getClassDef(class(tr_ex)) 

Reference Class "Tr1": 

Class fields: 

Name:  x 
Class: numeric 

Class Methods: 
    "import", ".objectParent", "usingMethods", "show", "getClass", "untrace", 
    "export", ".objectPackage", "callSuper", "copy", "initFields", 
    "getRefClass", "trace", "field" 

Reference Superclasses: 
    "Tr2", "envRefClass" 

在这种情况下,您所在的特定插槽是@refSuperClasses