2016-06-07 11 views
0

я определяю ссылочный класс следующим образом:В R ссылочного класса, как определить поля, как «XTS» объекты

test = setRefClass(
    Class = "test", 
    fields = c(
    edata = "data.frame" 
) 
) 
test$methods(
    getdata = function(newdata,...){ 
    edata <<- newdata 
    } 
) 

И тогда я использую следующий код:

test1 = test$new() 
x = xts(data.frame(val=1, val2=2), order.by=as.Date("2015-01-02")) 
test1$getdata(x) 

есть более сообщение об ошибке, что «не может назначить data.frame» класс, «зоопарком» затем я изменил код:

test = setRefClass(
    Class = "test", 
    fields = c(
    edata = "zoo" 
) 
) 

Но, после того, как библиотеки (зоопарк), или библиотеки (XTS), я получаю следующее сообщение:

Error in as(value, fieldClass, strict = FALSE) : 
    internal problem in as(): “xts” is(object, "zoo") is TRUE, but the metadata asserts that the 'is' relation is FALSE 

мне действительно нужно использовать EDATA как «XTS» объект в этом классе, потому что я хотел бы использовать так много функций которые уже написаны для xts!

есть ли способ справиться с этой проблемой?

ответ

1

Можно указать класс, как «ЛЮБОЙ»

test = setRefClass(
    Class = "test", 
    fields = c(
    edata = "ANY" 
) 
) 

Затем можно назначить «XTS» объект «EDATA».

 Смежные вопросы

  • Нет связанных вопросов^_^