Я разрабатываю пакет, используя rstan::stan()
.Я делаю функцию, возвращаемое значение которой является объектом класса S4, сгенерированным rstan::stan()
.Чтобы получить удобный доступ к оценкам или добавить информацию для данных, я хочу создать новый объект класса S4, который наследует класс S4 rstan::stan()
, чтобы появились новые слоты.
Кроме того, новый объект S4class также можетбыть доступным для любых функций в rstan
, таких как rstan::traceplot()
.
fit <- rstan::stan( model_name=scr, data=data) # This is a fictitious code.
Предположим, мы получаем объект S4 (stanfit) с именем fit
.
Определите расширенный классstanfit
InheritedClass <- setClass("InheritedClass",
# New slots
representation(slotA="character",
slotB="character",
slotC="numeric"),
contains = "stanfit"
)
Для создания объекта S4 унаследованного класса с использованием существующего объекта класса S4 , т. е. fit
, так что мне нужнотолько для ввода значений для добавленных новых слотов, то есть slotA, slotB, slotC.
Используя следующий код, мы можем преобразовать объект S4 для старого класса в унаследованный класс:
fit2 <- as(fit,"InheritedClass")
Используя это, мы можем редактировать слот следующим образом:
fit2@slotA <- "aaaaaaaaaaaa"