相关疑难解决方法(0)

如何查看函数的源代码?

我想查看一个函数的源代码,看看它是如何工作的.我知道我可以通过在提示符下键入其名称来打印函数:

> t
function (x) 
UseMethod("t")
<bytecode: 0x2332948>
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,是什么UseMethod("t")意思?我如何找到实际使用的源代码,例如:t(1:10)

有没有当我看到之间的差异UseMethod,当我看到standardGenericshowMethods,与with

> with
standardGeneric for "with" defined from package "base"

function (data, expr, ...) 
standardGeneric("with")
<bytecode: 0x102fb3fc0>
<environment: 0x102fab988>
Methods may be defined for arguments: data
Use  showMethods("with")  for currently available ones.
Run Code Online (Sandbox Code Playgroud)

在其他情况下,我可以看到正在调用R函数,但我找不到这些函数的源代码.

> ts.union
function (..., dframe = FALSE) 
.cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE)
<bytecode: 0x36fbf88>
<environment: namespace:stats>
> .cbindts
Error: object '.cbindts' …
Run Code Online (Sandbox Code Playgroud)

r function r-faq

518
推荐指数
10
解决办法
26万
查看次数

R的lm函数如何处理因子水平(在C_Cdqrls中?)?

或者换句话说:在这种情况下使用哪种算法?我想他们使用判别分析,如第4.4章所述。在詹姆斯等。等 “ R语言中的统计学习及其应用简介”?

输入意见后,我还可以按如下方式重述该问题:

  • 魔术的第一部分出现在ans <- .External2(C_modelmatrix, t, data)model.matrix.default其中)中,模型根据因子水平而变化=> 我想我理解这部分。
  • 第二部分仍然涉及z <- .Call(C_Cdqrls, x, y, tol, FALSE)并且我不希望线性回归和判别分析在数学水平上是相同的。 我会错过明显的东西吗?同样,我的stats程序包是二进制文件,我无权访问源代码...

我在本文中找到了非常有用的解释,但在某些时候它仅说明

... [解构]可能是一项复杂的任务,因此我们将不做详细介绍,以免将我们带到太远的地方...

我在文档中找不到任何内容,也无法debug(lm) 使用可再现的示例了解我所理解的情况:

n <- 10
p <- 6
set.seed(1)
x <- seq(0, 20, length.out = n) + rnorm(n, 0, 1)
y <- c(1:3)
y <- sample(y, n, replace = TRUE)
z <- 10*y*x + 10*y + 10 + rnorm(n, 0, 1)
debug(lm)
fit <- lm(z ~ x*y) …
Run Code Online (Sandbox Code Playgroud)

r linear-regression lm

5
推荐指数
1
解决办法
98
查看次数

查看内置R包的来源

可能重复:
查看R包的来源

我想看看stats :: reorder的源代码.

这个答案似乎不适用于编译为字节码的内置包:

> stats::reorder
function (x, ...) 
UseMethod("reorder")
>bytecode: 0x103321718<
>environment: namespace:stats<

r

1
推荐指数
1
解决办法
2283
查看次数

标签 统计

r ×3

function ×1

linear-regression ×1

lm ×1

r-faq ×1