在R中创建新的S3类方法
我正在写一个包,我想在其中创建一个新的通用方法,称为“analyze”,它根据argument类做不同的事情。类似于具有在R中创建新的S3类方法,r,class,methods,package,R,Class,Methods,Package,我正在写一个包,我想在其中创建一个新的通用方法,称为“analyze”,它根据argument类做不同的事情。类似于具有print.lm,print.aov等的print 在我的包的R文件夹中,我创建了两个文件“analyze.lm”和“analyze.aov”,其中包含同名函数。但是,如果我在lm对象上运行analyze(fit),它什么也不做,因为R只识别analyze.lm,而不识别根函数(“analyze”only) 我尝试添加一个“analyze.R”文件,该文件要么包含setMeth
print.lm
,print.aov
等的print
在我的包的R文件夹中,我创建了两个文件“analyze.lm”和“analyze.aov”,其中包含同名函数。但是,如果我在lm
对象上运行analyze(fit)
,它什么也不做,因为R只识别analyze.lm
,而不识别根函数(“analyze”only)
我尝试添加一个“analyze.R”文件,该文件要么包含setMethod()
(但出现错误),setGeneric(“analyze”,function(x)attributes(x))
(但这并没有解决问题),要么包含打印“NULL”的analyze()
函数。但是,如果我在lm
对象上运行analyze(fit)
,则in将打印NULL,而不是运行analyze.lm
类方法
我怎样才能创建一个通用方法,类似于base
print
,它根据参数类的不同而表现不同,并在不同的文件(analyze.lm.R、analyze.aov.R等)中进行拆分。谢谢 添加如下通用函数:
analyze <- function(object, ...){
UseMethod("analyze")
}
分析