У меня проблемы с получением класса из более старых пакетов, которые были определены по определению класса 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. Это хак, которым я пользуюсь сейчас.