我在'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?
非常感谢您的帮助。
答案 0 :(得分:1)
这将给出一个包含调用函数名称的字符串:
as.character(sys.calls()[[sys.nframe() - 1]][[1]])
如果为了提高模块化完全可行,我将不这样做,而是将一个参数传递给funcA
,该参数确定其行为,或者也许可以使用S3并将不同类的对象传递给funcA
。