問題:
R コードのスコープ内でローカル変数を定義する方法。
例:
C++ では、次の例はスコープを定義し、スコープ内で宣言された変数は外部コードでは未定義です。
{
vector V1 = getVector(1);
vector V1(= getVector(2);
double P = inner_product(V1, V2);
print(P);
}
// the variable V1, V2, P are undefined here!
注: このコードは、アイデアを説明するためのものです。
このプラクティスには、次の利点があります。
- グローバル名前空間をクリーンに保つ;
- コードの簡素化;
- 特に変数が初期化せずに再利用される場合に、あいまいさを取り除きます。
R では、この概念は関数定義内にのみ存在するように思えます。したがって、前のサンプル コードを再現するには、次のようにする必要があります。
dummy <- function( ) {
V1 = c(1,2,3);
V2 = c(1,2,3);
P = inner_product(V1, V2);
print(P);
}
dummy( );
# the variable V1, V2, P are undefined here!
または、さらにあいまいな方法で、匿名関数を宣言して関数呼び出しを防止します。
(function() {
V1 = c(1,2,3);
V2 = c(1,2,3);
P = inner_product(V1, V2);
print(P);
})()
# the variable V1, V2, P are undefined here!
質問
ローカル変数を作成するよりエレガントな方法はありますか?