r - 我们如何从子函数中提取外部函数的名称?
问题描述
我在“R”中有三个功能:
## Inner Function
funcA <- function(A){
return(A + 1)
}
## Outer Function 1
funcB <- function(B){
funcA(B)
}
## Outer Function 2
funcC <- function(C){
funcA(C)
}
我想做的是——
## Inner Function
funcA <- function(A){
if (called from funcB()){
x = 1
}else if(called from funcC()){
x = 2
}
return(A + x)
}
如何从 funcA 内部知道哪个外部函数称为 funcA?
我在这里先向您的帮助表示感谢。
解决方案
这将给出一个包含调用函数名称的字符串:
as.character(sys.calls()[[sys.nframe() - 1]][[1]])
如果为了提高模块化完全可行,我不会这样做,而是传递一个参数来funcA
确定它的行为方式,或者也许可以使用 S3 并将不同类的对象传递给funcA
.
推荐阅读
- google-app-engine - 我无法从应用引擎中托管的 nodejs 应用连接到 gcloud sql
- python - 列出 python 元组,边缘情况
- python - 将列向量连接到矩阵的末尾
- latex - 使用 tcolorbox 在 \rule 行中的间隙
- list - 如何从列表列表中的两个索引创建一个元组?
- javascript - 全局变量不改变函数中的值
- mysql - 刚开始配置时无法连接到任何指定的MySQL主机
- powershell - Get-FileHash 无法读取文件
- c - 使用动态函数复制字符串
- java - 如何将 Hibernate 的 Session 注入 micronaut 中的异步侦听器?