Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R语言:引用类中两种可能类型的字段?_R - Fatal编程技术网

R语言:引用类中两种可能类型的字段?

R语言:引用类中两种可能类型的字段?,r,R,我正在学习使用R进行OOP编程,特别是使用参考类 如果我有课,例如 myclass <- setRefClass(class="myclass", fields=list(x="numeric")); myclass像这样使用setClassUnion: setClassUnion("NumOrLog", c("numeric", "logical")) myclass <- setRefClass("myclass", fields=list(x="NumOrLog")) #

我正在学习使用R进行OOP编程,特别是使用参考类

如果我有课,例如

myclass <- setRefClass(class="myclass", fields=list(x="numeric"));

myclass像这样使用
setClassUnion

setClassUnion("NumOrLog", c("numeric", "logical"))
myclass <- setRefClass("myclass", fields=list(x="NumOrLog"))

# test
myclass(x = 12) # ok
myclass(x = TRUE) # ok
myclass(x = "X") # bad
setClassUnion(“NumOrLog”,c(“numeric”,“logical”))

实际上,我建议远离类联合,只使用类型“ANY”。您使用的高级S4功能越少,您编写的代码就越有可能在各种情况下工作。非常感谢您,Grothendieck先生。这起作用了。但若我想将类“integer”和“difftime”进行类并集,该怎么办呢?我无法理解错误来自以下示例:setClassUnion(name=“intDifftime”,members=c(“integer”,“difftime”);类“difftime”是在基本包中定义的,但是setClassUnion会抱怨?
“difftime”是S3,而不是S4。首先发布
setOldClass(“difftime”),让S4系统了解它