2017-08-08 35 views
1

我正在编写一个包,其中我想创建一个名为“analyze”的新泛型方法,根据参数类做不同的事情。到printprint.lmprint.aov在R中创建新的S3类方法

在我的包中的R文件夹一样,我创建了两个文件,“analyze.lm”和“analyze.aov”包含名字命名的功能。但是,如果我在lm对象上运行analyze(fit),则它不执行任何操作,因为R仅识别analyze.lm而不识别根函数(仅“分析”)。

我尝试添加一个“analyze.R”文件,该文件包含的任何setMethod()(但误码),setGeneric("analyze", function(x) attributes(x))(但这并没有解决这个问题)或analyze()功能,打印“NULL”。但是,如果我然后在lm对象上运行analyze(fit),则会打印NULL而不是运行analyze.lm类方法。

我怎么能创建一个通用的方法,类似于基地print,行为不同根据参数类,并且我维护分裂在不同的文件(analyze.lm.R,analyze.aov.R等)。谢谢!

回答

2

添加一个泛型函数是这样的:

analyze <- function(object, ...){ 
    UseMethod("analyze") 
} 
+0

奏效的感谢! –