普通公式的插槽

时间:2012-06-29 11:44:37

标签: r oop s4

我正在尝试使用类型公式的插槽。但公式不是基本数据类型。我该怎么做才能创建一个槽来存储像公式这样的对象。或者是否有意禁止将一般S3对象存储为插槽?如果有意使用S4类型的插槽,如何将S3类公式转换为S4类?

3 个答案:

答案 0 :(得分:2)

似乎对我有用:

setClass("form", representation(f="formula"))
myForm <- new("form",f=y~x)
myForm
An object of class "form"
Slot "f":
y ~ x

class(myForm@f)
[1] "formula"

答案 1 :(得分:1)

如果您在调用new时使用命名参数,也许会有所帮助。支持S4类作为插槽。

setClass(Class = "B", representation = representation(var1 = "character"))
setClass(Class = "A", representation = representation(var1 = "B"))
b<-new("B",var1="b")
a<-new("A",var1=b)

答案 2 :(得分:0)

我想使用像

这样的机制
 class B{
    int varb=0;
 }

 class A{
     B classvar;
     A(B var) classvar=var;
 }


 b=new B();
 a=new A(b);

目前我是这样做的

  setClass(Class = "A",
     representation = representation(var1 = "list")
     )

  setClass(Class = "B",
     representation = representation(var1 = "character")
     )
  b<-new("B","b")
  a<-new("A",list(b))

将S4对象保存为类变量。