在 R 参考 class 中,如何将字段定义为 "xts" 对象
In R reference class, how to define fields as "xts" objects
我正在定义一个参考 class 如下:
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)
"zoo" "cannot assign data.frame" class 有一条错误消息
然后我修改了代码:
test = setRefClass(
Class = "test",
fields = c(
edata = "zoo"
)
)
但是,在 library(zoo) 或 library(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
我真的需要在这个 class 中将 edata 用作 "xts" 对象,因为我会使用很多已经为 xts 编写的函数!
有什么办法可以解决这个问题吗?
可以将 class 指定为 "ANY"
test = setRefClass(
Class = "test",
fields = c(
edata = "ANY"
)
)
然后可以将 "xts" 对象分配给 "edata"。
我正在定义一个参考 class 如下:
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)
"zoo" "cannot assign data.frame" class 有一条错误消息 然后我修改了代码:
test = setRefClass(
Class = "test",
fields = c(
edata = "zoo"
)
)
但是,在 library(zoo) 或 library(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
我真的需要在这个 class 中将 edata 用作 "xts" 对象,因为我会使用很多已经为 xts 编写的函数!
有什么办法可以解决这个问题吗?
可以将 class 指定为 "ANY"
test = setRefClass(
Class = "test",
fields = c(
edata = "ANY"
)
)
然后可以将 "xts" 对象分配给 "edata"。