1. ホーム
  2. r

[解決済み] R関数で自由な変数名を検出する方法【重複】について

2022-03-03 09:14:19

質問

ある関数があるとします。

f <- function() {
  x + 1
}

ここで x は自由変数で、その値は関数の中で定義されていません。 f . 変数名を取得する方法はありますか、例えば x 定義された関数から、例えば f ?

他の人の古いRコードをメンテナンスしているときに、この質問をしています。フリー変数がたくさん使われていて、デバッグが大変です。

また、何か提案があれば歓迎します。

解決方法は?

その コードツールス パッケージには、この目的のための関数、例えば findGlobals

findGlobals(f, merge=FALSE)[['variables']]
# [1] "x"

この関数を名前付き引数を持つように再定義すると x の場合、変数は返されません。

f2 <- function(x){
  x+1
}
findGlobals(f2, merge=FALSE)[['variables']]
# character(0)