r - 如何在R中将插槽的默认值设置为NULL?

标签 r s4

我是 R 的新手。

我正在尝试定义一个类似于树节点的类,即它有一个左节点和右节点,它们应该与父节点属于同一类。所以我定义类如下:

setClass('Node', representation=(left='Node',right='Node', ...))

我想通过设置原型(prototype)将 Node 的默认值设置为 NULL,但 R 表示如下:
  invalid class "Node" object: invalid object for slot "left" in class "bicluster": got class "NULL", should be or extend class "Node"

但是如果我没有将默认值指定为 NULL,那么默认值将是深度为 4 的递归节点,我认为这会浪费资源。

我的考虑是不必要的还是有更好的方法呢?

最佳答案

有一次您需要使用 setClassUnion("listOrNULL",members=c("list", "NULL"))将 NULL 放入定义为列表的插槽中。我认为这是一个可用的类(class)。当您的设置不完整时无法测试,但定义父类(super class)“NodeOrNull”可能会让您越过最初的障碍。

关于r - 如何在R中将插槽的默认值设置为NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7466388/

相关文章:

r - 使用将连续变量分成两组的值构建表

r - 在 s4 泛型方法中混合 ... 与正式参数

R Markdown - 没有 ODT 和 LaTeX 选项作为输出

r - 如何在 Shiny 中为侧边栏面板添加滚动条?

r - R 中的抽象类型

r - 如何在 RStudio 中调试 S4 类

R S4 插槽作为自定义类列表

r - 如何为继承的插槽定义 S4 原型(prototype)

r - 如何在使用存储在变量中的名称创建数据框时命名列?

r - R中带有foreach的两个rbind数据帧的输出列表