我很难从S4类定义中识别出从较早的软件包中得到的类。我不断出错
Error in makePrototypeFromClassDef(properties, ClassDef, immediate, where) :
in making the prototype for class "Tsvmm" elements of the prototype failed to
match the corresponding slot class: dates (class "dates" )
In addition: Warning message:
undefined slot classes in definition of "Tsvmm": dates(class "dates")
一个可重现的示例:
require(chron)
setClass(
Class="Tsvmm",
representation=representation(
data = "data.frame",
dates = "dates"
),
prototype=prototype(
data = data.frame(),
dates = chron(0)
)
)
尝试
class(chron(0))
时,答案是"dates" "times"
。使用is.numeric(chron(0))
,答案是TRUE
。但是,当我将广告位日期的类别设置为"numeric"
时,会出现相同的错误而没有警告消息。我感觉自己正在忽略一些明显的问题,但是在文档中却找不到。有人指针吗?
PS:我知道
chron
软件包至少很特殊,但是我有充分的理由使用它。另外,其他软件包很可能会出现此问题。请参阅此示例以了解一般性问题。因此,请不要告诉我使用Date或POSIXt类。我现在正在使用这种技巧。 最佳答案
似乎您需要setOldClass才能使方法相信日期是一个真实的类。