1. 学ぶ
  2. /
  3. コース
  4. /
  5. R 中級

Connected

演習

R は引数を値渡しします

タイトルのとおり、R は引数を値渡しします。これは何を意味するのでしょうか。簡単に言うと、R の関数は、その関数に入力した変数自体を変更できないということです。次の簡単な例を見てみましょう(コンソールで試してみてください)。

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

triple() 関数の内部では、引数 x は自分の値を3倍したもので上書きされます。その後、この新しい x が返されます。この関数を 5 に設定した変数 a で呼び出すと、結果は 15 になります。では、a の値は変わったでしょうか?もし R が a を triple() に「参照渡し」していたなら、関数の内側での x の上書きは関数の外側にある変数 a にも影響します。しかし、R は「値渡し」なので、関数に渡した R オブジェクトは、明示的な代入を行わない限り決して変わりません。triple(a) を呼び出した後でも、a は 5 のままです。

次のコードについて、以下の記述のうちどれが誤りか当ててください。

increment <- function(x, inc = 1) {
  x <- x + inc
  x
}
count <- 5
a <- increment(count, 2)
b <- increment(count)
count <- increment(count, 2)

指示

50 XP

選択肢