R setClassUnion无法将glm与coxph类联接
当我尝试在R中创建一个类,其中包含一个插槽,该插槽应接受R setClassUnion无法将glm与coxph类联接,r,s4,roxygen2,R,S4,Roxygen2,当我尝试在R中创建一个类,其中包含一个插槽,该插槽应接受glm类对象或coxph类一,我在包构建期间收到一个错误,即 setClassUnion(name=“glmORcoxph”,members=c(“glm”,“coxph”))中的错误:必须定义成员类:对于“coxph”,不是true。 我试图将@import,@importClassesFrom,@importFromRoxygen指令添加到源代码中,但没有成功。这是我用来创建DoseVolumeModel类的代码: setClassUn
glm
类对象或coxph
类一,我在包构建期间收到一个错误,即
setClassUnion(name=“glmORcoxph”,members=c(“glm”,“coxph”))中的错误:必须定义成员类:对于“coxph”,不是true
。
我试图将@import
,@importClassesFrom
,@importFrom
Roxygen指令添加到源代码中,但没有成功。这是我用来创建DoseVolumeModel
类的代码:
setClassUnion(name = "ConfidenceInterval", members = c("NULL", "numeric"))
setClassUnion(name = "glmORcoxph", members = c("glm", "coxph"))
setClass("DoseVolumeModel",
representation(
output.matrix = "matrix",
fitted.model = "glmORcoxph",
fitted.value = "numeric",
CI = "ConfidenceInterval",
fitted.parameter = "character"
)
)
如何修复它?除非已经预先注册,否则不能使用像
coxph
这样的S3类。你可以打电话来
setOldClass("coxph")
在调用setClassUnion
之前。然后,您可以在插槽或类联合中自由地使用coxph
作为类定义
请注意,您不能对此类coxph
对象做出太多保证,因为R不强制要求它们具有任何特定属性。任何用户都可以自由地执行以下操作
x <- 1
class(x) <- "coxph"
x除非预先注册,否则不能使用像coxph
这样的S3类。你可以打电话来
setOldClass("coxph")
在调用setClassUnion
之前。然后,您可以在插槽或类联合中自由地使用coxph
作为类定义
请注意,您不能对此类coxph
对象做出太多保证,因为R不强制要求它们具有任何特定属性。任何用户都可以自由地执行以下操作
x <- 1
class(x) <- "coxph"
x答案可能是在您的setClassUnion
之前运行setOldClass(“coxph”)
——在您运行setOldClass
之前,S3类不适合包含在类联合和插槽中。谢谢。现在看起来像是在跑步。然而,包构建在退出时带有一个警告warning:Classes.R:26:Missing name
,但我不知道它作为name
的意思是什么。这肯定与这个问题有关吗?这是Classes.R
第26行的代码片段吗?这是我的代码,第一行是源文件中的第26行:setOldClass(Classes=“coxph”)setClassUnion(name=“ConfidenceInterval”,members=c(“NULL”,“numeric”))setClassUnion(name=“glmORcoxph”,members=c(“glm”,“coxph”))setClass(“DoseVolumeModel”,表示法(output.matrix=“matrix”,fitted.model=“glmORcoxph”,fitted.value=“numeric”,CI=“ConfidenceInterval”,fitted.parameter=“character”)
答案可能正在运行
在您的setClassUnion
之前--S3类不适合包含在类联合和插槽中,除非您对它们运行setOldClass
。谢谢。现在看起来像是在跑步。然而,包构建在退出时带有一个警告warning:Classes.R:26:Missing name
,但我不知道它作为name
的意思是什么。这肯定与这个问题有关吗?这是Classes.R
第26行的代码片段吗?这是我的代码,第一行是源文件中的第26行:setOldClass(Classes=“coxph”)setClassUnion(name=“ConfidenceInterval”,members=c(“NULL”,“numeric”))setClassUnion(name=“glmORcoxph”,members=c(“glm”,“coxph”))setClass(“DoseVolumeModel”,表示法(output.matrix=“matrix”,fitted.model=“glmORcoxph”,fitted.value=“numeric”,CI=“ConfidenceInterval”,fitted.parameter=“character”))