如何获取函数内使用的内置函数的列表

2024-01-06

假设我有一个名为Fun1其中我针对不同的不同流程使用了许多不同的 R 内置函数。那么如何获取该函数内使用的内置函数的列表Fun1

  Fun1 <- function(x,y){
  sum(x,y)
  mean(x,y)
  c(x,y)
  print(x)
  print(y)
  }

所以我的输出应该像字符列表,即sum, mean, c, print。因为这些是我在函数内部使用过的内置函数Fun1.

我尝试过使用grep功能

 grep("\\(",body(Fun1),value=TRUE)
 # [1] "sum(x, y)"  "mean(x, y)" "c(x, y)"    "print(x)"   "print(y)" 

看起来不错,但争论不应该出现,即x and y。只是函数体内使用的函数名称列表Fun1 here.

所以我的总体目标是打印unique list of in-built functions or any create functions inside a particular function, here Fun1.

对此的任何帮助都将受到高度赞赏。谢谢。


你可以使用all.vars()获取出现在主体内的所有变量名(包括函数)Fun1,然后将其与一些准备好的函数列表进行比较。您提到了内置函数,因此我将其与基本包对象名称进行比较。

## full list of variable names inside the function body
(vars <- all.vars(body(Fun1)[-1], functions = TRUE))
# [1] "sum"   "x"     "y"     "mean"  "c"     "print"

## compare it with the base package object names
intersect(vars, ls(baseenv()))
# [1] "sum"   "mean"  "c"     "print"

我删除了函数体的第一个元素,因为大概你不关心{,它将与基本包列表进行匹配。

另一种可能性,尽管不太可靠,是比较以下形式的论证:Fun1函数中的所有变量名称。就像我说的,虽然可能不太可靠,因为如果你在函数内进行赋值,你最终会得到不正确的结果。

setdiff(vars, names(formals(Fun1)))
# [1] "sum"   "mean"  "c"     "print"

不过这些很有趣,你可以摆弄它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取函数内使用的内置函数的列表 的相关文章

随机推荐

  • 如何使用 Java Mission Control 监控远程服务器中的 JVM?

    是否可以使用JMC 监控远程服务器中的 JVM 如果是这样我该怎么做 在使用之前是否需要调用任何特定的 java 标志 我尝试创建一个新的 JVM 连接 并指定向导中要求的所有详细信息 但是当我测试连接时它无法连接到该服务器 由于需要进行一
  • IIS 站点不断提示输入 Windows 身份验证方法的凭据

    我需要一些帮助来了解我无法在 IIS 站点上针对特定用户组使用 Windows 身份验证的确切原因 发生的情况是 即使我的用户属于我授予站点访问权限的组的一部分 IE 也会不断提示我输入凭据 甚至当我输入密码时 HTTP 响应也是 401
  • 如何使用库(插入符号)更改指标?

    我想使用以下方法将指标从 RMSE 更改为 RMSLE caret library 给定一些示例数据 ivar1 lt rnorm 500 mean 3 sd 1 ivar2 lt rnorm 500 mean 4 sd 1 ivar3 l
  • LINQ + Foreach 与 Foreach + If

    我需要迭代对象列表 仅对布尔属性设置为 true 的对象执行某些操作 我正在这段代码之间争论 foreach RouteParameter parameter in parameters Where p gt p Condition do
  • 使用 mod_wsgi 从不运行 Django 的站点提供 Django 应用程序 /

    我有一个网站 目前正在使用 Django 逐个应用程序重写 服务器是RedHat 运行 Apache 2 安装 mod wsgi 一切正常 惊人的 如果我去http www example com http www example com
  • preg_replace() 找不到结束分隔符?

    I use preg replace 很多 但我不是这方面的天才 如果我启动一个功能并故意键入我想要使用的所有表情符号 例如 但今天我尝试更改它并使用 mysql 让我可以随意插入和删除它们 而无需在我的代码中播放 但是当我尝试它时 它只会
  • Angular2:检测表单变化

    在 Angular2 4 0 中我有一个FormGroup看起来像这样 this form this fb group a Validators required b Validators required c Validators req
  • macOS 上的 NavigationLink 无法在同一视图中打开

    我目前正在构建一个 macOS 应用程序SwiftUI 无 Catalyst 应该有一个侧边栏和其右侧的单个视图 NavigationView List listStyle SidebarListStyle HomeView 我的主页视图有
  • Angular 4单个API请求运行多次

    我遇到有关 Angular 4 应用程序的问题 我创建了一个应用程序 其中的数据是从第三方 API 获取的 我遇到的问题是我的 API 多次调用 但我只发送了一次请求 经过一些研发后 我发现浏览器正在使用 OPTION 方法运行航班请求 但
  • Neo4j 中匹配/删除整个子图

    假设我的数据库中有一个大图 我想删除其中的整个子图 其中我只知道该子图的起始节点 是否可以编写一个密码查询来匹配并删除整个子图 警告 我不知道更多关于子图从哪个节点开始的信息 是的 您可以通过 APOC 程序从单个节点扩展到所有子图节点路径
  • 从源代码管理中丢失后如何生成新的 .pfx 文件?

    我正在使用 GitHub 托管我正在开发的开源 Windows 10 应用程序 我不小心忽略了应用程序的 PFX 文件 因此当我删除本地副本并重新克隆存储库时 我没有了MyApp TemporaryKey pfx文件 现在 Visual S
  • NLTK 上下文无关语法生成器

    我正在开发一个带有 Unicode 字符的非英语解析器 为此 我决定使用 NLTK 但它需要预定义的上下文无关语法 如下所示 S gt NP VP VP gt V NP V NP PP PP gt P NP V gt saw ate wal
  • 在 Web 应用程序和控制台应用程序之间共享配置设置

    我想与我的控制台应用程序 同一解决方案中的 2 个项目 共享我的 VS2010 3 5 Web 应用程序设置 例如连接字符串 smtp log4net 设置 这看起来很接近 http devlicio us blogs derik whit
  • PHP - 带 GET 查询的加号

    我有一个 PHP 脚本 它通过以下方法对字符串进行基本加密
  • iOS 7 自定义转换故障

    该视频显示了我遇到的问题 http www youtube com watch v C9od 2KZAbs http www youtube com watch v C9od 2KZAbs 我正在尝试使用 UIPanGestureRecog
  • Django 1.9 URLField 删除必要的 http:// 前缀

    我看到了很多关于此的问题 但还没有找到答案 这是我的模型 class UserProfile models Model user models OneToOneField User website models URLField max l
  • Sublime Text 2 是用什么编程语言编写的 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我喜欢 Sublime text 2 及其跨平台性 你知道这个程序是用什么语言编写的 或者使用了哪些技术吗 谢谢 来自推特 http mobile t
  • UISearchDisplayController 覆盖层和栏之间的间隙

    在我的应用程序中 我尝试添加搜索功能 我有表格视图控制器和自定义顶部栏视图 我在其中显示UISearchBar 问题是覆盖视图总是位于顶部栏下方一点 并且增加了它们之间的间隙 In my 表视图控制器 m文件的viewDidLoad sup
  • C++调用基类方法切片对象

    我有这样的事情 include
  • 如何获取函数内使用的内置函数的列表

    假设我有一个名为Fun1其中我针对不同的不同流程使用了许多不同的 R 内置函数 那么如何获取该函数内使用的内置函数的列表Fun1 Fun1 lt function x y sum x y mean x y c x y print x pri