我已经定义了两个RC。第一个是VectorCharacterElements
。我已经为其分配了有效性测试。
VectorCharacterElements <- setRefClass(
"VectorCharacterElements",
fields = list(vec = "character", el1 = "character", el2 = "character")
)
ValidVectorCharacterElements <- function(object) {
if (length(object$vec) < 2) {
cat("Length of `vec` must be greater than or equal to two.")
cat("\n")
return(F)
}
return(T)
}
setValidity("VectorCharacterElements", ValidVectorCharacterElements)
我正在尝试定义第二个RC VectorCharacterElementsDistance
。它使用VectorCharacterElements
作为字段。
VectorCharacterElementsDistance <- setRefClass(
"VectorCharacterElementsDistance",
fields = list(vce = "VectorCharacterElements", d = "numeric")
)
但是,运行上述代码时出现错误。
vec
的长度必须大于或等于2。错误中 validObject(.Object):无效的类“ VectorCharacterElements” 对象:FALSE
该错误来自我为VectorCharacterElements
定义的验证方法。
如何保持对VectorCharacterElements
的验证,并确保vce
中VectorCharacterElements
的类型为VectorCharacterElementsDistance
?
如果我使用contains
,错误将不会出现。
VectorCharacterElementsDistance <- setRefClass(
"VectorCharacterElementsDistance",
contains = "VectorCharacterElements",
fields = list(d = "numeric")
)
但是,我想避免从VectorCharacterElements
继承。