我想知道如何访问bayesmeta
包中的函数bayesmeta
的源代码。看到类似的问题,我尝试使用package:::function
,使用getAnywhere
和methods("bayesmeta")
但没有成功。
在这种情况下,是否有更好的方法可以从R中访问源代码?
library("bayesmeta")
bayesmeta:::bayesmeta
getAnywhere("bayesmeta")
methods("bayesmeta")
答案 0 :(得分:1)
如有疑问,我想查看实际的源代码。您可以从CRAN下载软件包源代码,直接查看R目录中的源文件。
该软件包可在此处获取:https://cran.r-project.org/web/packages/bayesmeta/index.html(请参阅"包源"行)。
指向来源的直接链接:https://cran.r-project.org/src/contrib/bayesmeta_2.0.tar.gz
我更喜欢查看原始包源,因为我看到了注释,我可能不知道的函数,未导出的函数等等。
在这种情况下,从包源中,您可以看到main函数被称为bayesmeta.default
:
> bayesmeta:::bayesmeta.default
function (y, sigma, labels = names(y), tau.prior = "uniform",
mu.prior = c(mean = NA, sd = NA), mu.prior.mean = mu.prior[1],
mu.prior.sd = mu.prior[2], interval.type = c("shortest",
"central"), delta = 0.01, epsilon = 1e-04, rel.tol.integrate = 2^16 *
.Machine$double.eps, abs.tol.integrate = rel.tol.integrate,
tol.uniroot = rel.tol.integrate, ...)
{
ptm <- proc.time()
y <- as.vector(y)
sigma <- as.vector(sigma)
labels <- as.vector(labels)
stopifnot(is.vector(y), is.vector(sigma), all(is.finite(y)),
all(is.finite(sigma)), length(sigma) == length(y), all(sigma >=
0), sum(sigma == 0) <= 1, length(mu.prior) == 2,
length(mu.prior.mean) == 1, length(mu.prior.sd) == 1,
is.na(mu.prior.mean) || is.finite(mu.prior.mean), is.na(mu.prior.sd) ||
(is.finite(mu.prior.mean) && (mu.prior.sd > 0)),
((is.na(mu.prior.mean) & is.na(mu.prior.sd)) || (is.finite(mu.prior.mean) &
is.finite(mu.prior.sd))), (is.function(tau.prior) |
(is.character(tau.prior) && (length(tau.prior) ==
1))))
etc. ...