gpt4 book ai didi

r - 将函数内容分配给变量以进行文本处理

转载 作者:行者123 更新时间:2023-12-04 10:57:08 24 4
gpt4 key购买 nike

我想将函数的内容作为文本分配给变量,以便在其中查找各种模式。 (实际上,我想分配 每个 函数的内容以查看每个函数从其他函数调用的频率,但是一旦我可以为一个函数执行此操作,这很容易做到。

乍一看,这似乎很容易。这就是在控制台中输入函数名称的原因,这意味着 print.function 应该告诉我如何做到这一点:

> print.function
function (x, useSource = TRUE, ...)
.Internal(print.function(x, useSource, ...))
<environment: namespace:base>

失败。那么如果我只是将函数内容分配给一个变量并将它们强制转换为字符呢?

fxn_names <- apropos(".+")
fxns <- lapply(fxn_names,get)
as.character(fxns[[1]])

Error in as.character(fxns[[1]]) :
cannot coerce type 'builtin' to vector of type 'character'

这里有什么技巧吗?也许是一个我不知道的 .Internal 函数?

最佳答案

解析?

> deparse(mean)
[1] "function (x, ...) " "UseMethod(\"mean\")"
> deparse(`+`)
[1] ".Primitive(\"+\")"

至于将所有函数作为文本获取,一些技巧是必要的:

fxn_names <- apropos(".+")
fxns<-lapply(fxn_names,
function(f) eval(parse(text=paste("deparse(`", f, "`)", sep=""))))

更新

这里有更简单的解决方案(感谢@gsk3)

fxn_names <- apropos(".+")
fxns <- lapply(fxn_names, function(x)deparse(get(x)))

关于r - 将函数内容分配给变量以进行文本处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com