R setClassUnion无法将glm与coxph类联接

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

当我尝试在R中创建一个类,其中包含一个插槽,该插槽应接受
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”))