我们如何从子函数中提取外部函数的名称?

时间:2020-07-08 15:26:56

标签: 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?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这将给出一个包含调用函数名称的字符串:

as.character(sys.calls()[[sys.nframe() - 1]][[1]])

如果为了提高模块化完全可行,我将不这样做,而是将一个参数传递给funcA,该参数确定其行为,或者也许可以使用S3并将不同类的对象传递给funcA

相关问题