如何检查函数是否已从控制台调用?

2024-01-17

我试图跟踪从控制台调用某些函数的次数。 我的计划是在每个函数中添加一个简单的函数,例如“trackFunction”,可以检查它们是从控制台调用还是作为底层函数调用。

尽管这个问题听起来很简单,但由于我在函数编程方面的知识有限,我找不到解决这个问题的好方法。我一直在查看调用堆栈和 rlang::trace_back 但没有一个好的解决方案。

任何帮助表示赞赏。

Thanks


一个简单的方法是查看当前帧位于哪个级别。也就是说,如果在解释器中直接调用一个函数,那么sys.nframe()回报1, 否则2或更高。

Relate:

Rscript 检测 R 脚本是否正在被调用/源自另一个脚本 https://stackoverflow.com/questions/47932246/rscript-detect-if-r-script-is-being-called-sourced-from-another-script/47932989#47932989

myfunc <- function(...) {
  if (sys.nframe() == 1) {
    message("called from the console")
  } else {
    message("called from elsewhere")
  }
}

myfunc()
# called from the console

g <- function() myfunc()
g()
# called from elsewhere

不幸的是,这可能并不总是直观的:

ign <- lapply(1, myfunc)
# called from elsewhere
for (ign in 1) myfunc()
# called from the console

虽然对于很多事情来说lapply-家庭和for循环是相似的,它们在这里的行为是分开的。如果这是一个问题,也许缓解这个问题的唯一方法是分析/解析调用堆栈,并可能“忽略”某些函数。如果这就是你need,那么也许这样更合适:

R 如何检查某个包中的特定函数中是否调用了自定义函数 https://stackoverflow.com/questions/62746607/r-how-to-check-that-a-custom-function-is-called-within-a-specific-function-from/62747050#62747050

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

如何检查函数是否已从控制台调用? 的相关文章

  • R 中的插补 MICE 仍不存在于数据集中

    运行 MICE 包后 5 个完整插补集中的缺失值数量从 147428 减少到 46093 但不是应该是 0 NA 吗 Thanks 这是我的 MICR 代码 imp mice newdata imputationSet1 complete
  • 如何使用 gvisMotionChart 处理 POSIXlt 格式时间?

    The googleVisR软件包出奇的好 然而 我对一个问题感到困惑gvisMotionChart关于 timevar 因为我的数据集中的时间是POSIXlt格式 例如 2009 07 02 19 00 00 2009 07 02 20
  • r dplyr - 读取文件列表并使用文件名作为变量

    我想用每个文件的名称替换 image annotate 下面的 文本 library dplyr library purrr library magick list files path pattern png full names T g
  • 保存 d3heatmap 生成的热图

    我正在尝试保存由d3heatmap https github com rstudio d3heatmap转换为 pdf 文件 但文件总是损坏 library d3heatmap pdf file heat pdf d3heatmap mtc
  • aggregate() 将多个输出列放入矩阵中

    我要计算某个变量的多个分位数 gt res1 lt aggregate airquality Wind list airquality Month function x quantile x c 0 9 0 95 0 975 gt head
  • 如何在 Heroku 预览应用部署后脚本中设置 ENV var

    我想设置HOST环境变量到 HEROKU APP NAME herokuapps com在预览应用程序上 看来我不能这样做app json因为这是一个计算值 我希望在像这样的 部署后 脚本中做到这一点 heroku config set H
  • 加载 plyr 包时出现问题

    我使用 R 2 13 1 但未能成功尝试在 R 中加载包 plyr 1 6 我已将其手动安装到目录 R library 中 我的代码是 libPaths R library library plyr 我收到消息 库 plyr 中的错误 pl
  • 将缺失的行添加到数据表中

    我有一个数据表 library data table f lt data table id1 c 1 2 3 1 2 3 id2 as factor c a a b c b d v 1 6 key c id1 id2 id1 id2 v 1
  • selectInput 的动态数量

    我是闪亮的新手 所以这可能是一个非常基本的问题 我想编写一个闪亮的应用程序 其中用户输入 n 我们得到 n 个 selectInput 选项 但我无法做到这一点 基本上任何形式的 for 循环都不起作用 我尝试的代码如下 library s
  • 聚合时间

    我的数据包含 1 分钟测量值 我希望将其聚合为 5 分钟和 10 分钟 如何在 10 分钟内将 日 列的数据分组为 5 样本数据2 structure list Day c Monday Monday Monday Monday Monda
  • R中的预测和预测函数之间的区别

    两者之间有什么区别吗predict and forecast R 中的函数 如果是 在哪些具体情况下应该使用它们 Intro predict 适用于多种 R 对象 模型 基础库的一部分 forecast 对于时间序列 预测包的一部分 参见示
  • R:从本地 tar.gz 安装 R 软件包时找不到“make”

    R 包ConvCalendar不再位于 Cran 存储库中 请参阅here https cran r project org web packages ConvCalendar index html 然而 因为我在之前的项目中大量使用了这个
  • r - 根据第一个向量重新排序第二个向量

    寻找解决方案来执行以下操作 有两个向量 a lt c 2 1 3 4 7 6 5 9 8 10 b lt c 3 2 1 6 5 4 7 8 9 10 我想创建第三个向量 它给出向量的顺序b需要重新排序 使其顺序与a 在这种情况下我想得到
  • 替换因子列中的

    我想更换
  • 添加多个 Visual Studio 属性表 (.props) 的 %PATH%

    界定PATH在属性表中的本地项目中 我需要将其添加到LocalDebuggerEnvironment 当只有 1 个属性表定义时 此方法效果很好PATH 如果我有多个属性表 而我想使用PATH从每个属性表中 Visual Studio 只会
  • magrittr 管道中的 WOE

    如何将下面的证据代码权重放入 magrittr 管道中 df gt 我尝试过的一切似乎都不起作用 df library Information library magrittr df a c aa bb cc aa aa aa bb cc
  • 使用 ggplot 绘制函数,相当于 curve()

    是否有使用绘制函数的等效方法ggplot to the curve 基础图形中使用的命令 我想另一种选择是创建一个函数值向量并绘制一条连接线 但我希望有更简单的东西 Thanks 您可以使用以下命令添加曲线stat function ggp
  • 提取模型摘要并将其存储为新列

    我是新来的purrr范例并正在努力解决它 根据一些来源 我已经设法嵌套一个数据框 在嵌套数据上运行线性模型 从每个 lm 中提取一些系数 并为每个 lm 生成摘要 我想做的最后一件事是从摘要中提取 r squared 我原以为这将是我想要实
  • 拆分并保存在新的 data.frames 中

    我有一个大 data frame 144 列 我想将其分成每组 3 列 子文件或子 data frame 然后将子 data frame 保存在单独的文件中 换句话说 file1 将包含从 1 到 3 的列 file2 将包含从 6 到 9
  • dplyr::mutate 添加多个值

    网上有几个与此相关的问题dplyr Github 存储库 https github com hadley dplyr已经 并且至少有一个相关的问题 但没有一个问题完全涵盖了我的问题 我认为 在 dplyr mutate 调用中添加多列 ht

随机推荐

  • 专注于模式内的输入会导致 ios 向下滚动

    我遇到了模态内的输入并提出了问题 当用户打开模式时 它会覆盖整个页面 并设置为高 z index 和绝对位置 一旦用户专注于模式内的输入 在 iOS 上 整个页面就会由于某种原因向下滚动 我认为 ios 的行为是将输入字段向上滚动一点 以便
  • 从调试切换到发布时,Visual Studio C# 项目会强制重建,反之亦然

    每次从调试切换到发布时 Visual Studio 2012 C 项目似乎都会强制重建 反之亦然 即使项目中没有任何更改 对于独立项目来说 这种情况不会发生 但是 如果您将单个项目引用添加到类库 那么每次更改为不同的构建配置时 它就会开始表
  • 使用 SQL 查询获取所有 WooCommerce 客户已付款的订单

    我需要一个查询 返回所有订单已批准付款的用户 我很难找到数据库中存储它的位置 我只找到了 post status wc complete 但我认为这不是正确的信息 SELECT a post status b meta value FROM
  • PyCharm删除参数字段中的引号

    我想使用 PyCharm 中的参数字段为 python 脚本设置参数 我的配置 但运行控制台中的命令是 python3 path to script py app id picoballoon network dev id ferdinan
  • DIV指令跳转到随机位置?

    所以我有这个确切的问题 https stackoverflow com questions 8236636 8086 assembly div going ape ip jumping to a weird location endless
  • 如何仅删除 Pandas 多索引数据框中的索引名称而不删除内容

    我有以下制表符分隔文件 mydata txt Set Coolthing Route Organ Up Down set4 foo ID LN 81 60 set4 bar ID LN 542 92 set4 foo ID LV 73 73
  • 在VS2010中找不到DataContractJsonSerializer

    我正在开发一个演示 Silverlight 应用程序 我想做一些简单的 JSON 我找到了System Runtime Serialization Json DataContractJsonSerializer http msdn micr
  • Objective C 检查文本字段是否为空

    这是代码 IBAction charlieInputText id sender getting value from text field when entered charlieInputSelf sender stringValue
  • 随机生成具有偏爱低值分布的整数

    我有一个按某些质量函数排序的列表 我想从中获取元素 更喜欢列表开头的好元素 目前 我生成随机索引的函数基本上如下所示 def pick p 0 2 for i in itertools count if random random lt p
  • Ubuntu Apache2 本地虚拟主机 url 未找到

    我正在设置我的笔记本电脑 使用 Ubuntu 16 10 上的 LAMP 堆栈进行多个站点的单用户开发 并为不同站点提供虚拟主机和基于名称的虚拟主机 我尝试了各种配置设置组合 但无法从浏览器加载站点 我收到 在此服务器上找不到请求的 URL
  • Groovy 压缩列表或按级别展平

    我正在尝试压缩两个列表 我找到了一个解决方案 使用transpose 来自此链接 Groovy 中是否有 Scala zip 函数的类似物 https stackoverflow com questions 13879489 is ther
  • 如何对数组列表<>求和

    我有一个 List myList 其中我知道所有 int 数组的长度相同 为了便于论证 我们假设我有 500 个数组 每个数组有 2048 个元素长 我想对所有 500 个数组求和 得到一个长度为 2048 个元素的数组 其中每个元素是所有
  • 仅当编辑器处于焦点状态时才显示 TextAngular 工具栏(对于具有 1 个工具栏的多个编辑器)

    我有多个编辑器和一个工具栏 最初我只有一个编辑器 然后通过单击工具栏中的按钮添加第二个和第三个编辑器 工具栏位于第一个编辑器的顶部 随后添加的编辑器堆叠在另一个编辑器的下面 我遇到的问题是 当任何编辑器处于焦点状态时 如何显示工具栏 如何将
  • 动态生成灵活数量的嵌套 for 循环[重复]

    这个问题在这里已经有答案了 是否可以根据输入的长度添加 减少函数中嵌套 for 循环的数量 例如 基于长度为 3 的某个输入 我可能需要使用 1 个嵌套 for 循环 for 循环位于另一个 for 循环内 与此类似 for i in ra
  • ReSharper 的静态分析器似乎已损坏。我如何解决它?

    我对 ReSharper 给出的建议明显错误感到有疑问 例如 在以下代码示例中 ReSharper 表示response dates and ex当变量在以下几行中明确使用时 永远不会使用它们 Dim response As New Wcf
  • 仅在 Safari 上单击/悬停/聚焦时出现意外行为 - 圆形图片变为方形?

    我有奇怪的行为 圆形图片在桌面和移动设备上变成方形 这似乎只发生在 safari 上 并且只有当我添加 CSS 过渡时才会发生 这是网站 https shmoss github io Gibbs Lab people html https
  • C# 方法声明中的 new

    public new int AdjustedBaseValue 这里的新是什么意思或做什么 这意味着您正在隐藏 int 值 它是在基类中声明的 并且您在派生类中重新声明它 从而有效地隐藏了基类版本 查看文档here https learn
  • CSS 外部样式表不起作用,但完全相同的 CSS 在内部样式表上工作

    在制作个人网站时 我遇到了添加 CSS 样式表的问题 该样式表是本地样式表 在同一文件夹中具有 htm 文件 名为 Rodrigo css Here is the HTML Link tag with the CSS in the hrc
  • 绕过截断的“ps”

    我正在尝试编写一个脚本 该脚本将根据关键字查找特定进程 提取 PID 然后使用找到的 PID 杀死它 我在 Solaris 中遇到的问题是 由于 ps 结果被截断 基于关键字的搜索将无法工作 因为关键字是被截断的部分 过去 80 个字符 的
  • 如何检查函数是否已从控制台调用?

    我试图跟踪从控制台调用某些函数的次数 我的计划是在每个函数中添加一个简单的函数 例如 trackFunction 可以检查它们是从控制台调用还是作为底层函数调用 尽管这个问题听起来很简单 但由于我在函数编程方面的知识有限 我找不到解决这个问