Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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中创建新的S3类方法_R_Class_Methods_Package - Fatal编程技术网

在R中创建新的S3类方法

在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

我正在写一个包,我想在其中创建一个新的通用方法,称为“analyze”,它根据argument类做不同的事情。类似于具有
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")
}
分析