【发布时间】:2011-11-14 12:35:09
【问题描述】:
我想知道特定函数的公式是什么。通常当我输入不带括号的函数时,它会返回一个公式,所以如果我输入sd,我会得到:
function (x, na.rm = FALSE)
{
if (is.matrix(x))
apply(x, 2, sd, na.rm = na.rm)
else if (is.vector(x))
sqrt(var(x, na.rm = na.rm))
else if (is.data.frame(x))
sapply(x, sd, na.rm = na.rm)
else sqrt(var(as.vector(x), na.rm = na.rm))
}
<environment: namespace:stats>
这很好。但是,如果我在加载 zoo 包的情况下键入 rollmean,它会返回:
function (x, k, fill = if (na.pad) NA, na.pad = FALSE, align = c("center",
"left", "right"), ...)
{
UseMethod("rollmean")
}
<environment: namespace:zoo>
我猜想rollmean 方法中发生了一些事情,但我如何才能看到其中发生了什么?这可能是一个新手问题,但我很难找出如何查看特定函数的基本公式。
【问题讨论】:
-
您可能想先尝试
?Methods。您需要的大部分信息都在那里。 -
“The R Inferno”的第 7 圈在这方面也可能提供信息burns-stat.com/pages/Tutor/R_inferno.pdf
-
@NickSabbe:
?Methods用于 S4 类对象,而 zoo 对象是 S3 类对象。最好从?UseMethod开始(因为它在函数体中),然后阅读?methods(在?UseMethod的另见部分)。