在(R)S3中,function.class.class有什么用?

时间:2015-10-26 14:10:43

标签: r

在S3风格的OOP中,编写为foo.A的函数名称用于调用类 f A
但最近我遇到了写成function.class.class

的函数
foo.A.B <- function(x){
##---
}

这种功能是什么做的?

1 个答案:

答案 0 :(得分:4)

(发布回答问题的答案)

正如@joran所指出的,函数fortify.MSM.lm实际上只是fortify函数的一种方法,用于MSM.lm类型的对象。这里使用的时期没有隐含的heirachy。在大多数情况下,R中的句点就像命名变量的任何其他字符一样;它与其他语言没有同样的意义。正如您已经看到的,少数例外之一是S3通用函数的命名方法。

所以你可以定义

my.fun <- function(x, ...) UseMethod("my.fun")
my.fun.data.frame <- function(x, ...) summary(x)
my.fun(mtcars)

所以名称my.fun.data.frame。这些时段并不意味着什么,只是当您使用my.fun类调用data.frame时,R会查找名为"my.fun" + "." + "data.frame"的函数。