【发布时间】:2011-05-06 14:47:27
【问题描述】:
我正在编写一个 S3 方法,我想使用 任何 R 对象,包括 S4 对象。
我不明白的第一件事是 S4 类似乎不是从 S4 基类派生的,所以给定 f <- function(x) UseMethod("f") 我不能只声明一个 f.S4 调度方法并让它接收所有S4 对象。 (尽管如果你 unclass 是一个 S4 对象,它似乎确实被赋予了 S4 类。)我应该如何管理调度?
似乎处理这些 S4 对象的最简单方法是将它们转换为列表。不幸的是,as.list 抛出了一个错误(“没有将这个 S4 类强制转换为向量的方法”)。
这是我的测试 S4 对象:
library(gWidgetstcltk)
win <- gwindow()
methods 包中的 S3Part 和 S3Class 函数看起来很有希望,但是当我在 win 上使用它们时它们都会抛出错误。那么,问题 2 是:有没有一种通用的方法可以将 S4 对象转换为列表?
【问题讨论】: