« 2017年1月 | トップページ | 2017年3月 »

2017年2月28日 (火)

[R]エラーメッセージ「二項演算子の引数が数値ではありません」

そのメッセージのとおり、二項演算子(「+」とか「/」)で演算を行うときに、数値ベクトル以外のものを与えたときにこのエラーが発生する。

陥りやすい罠として、元々関数として存在している関数名を誤って与えてしまったときに、このメッセージが出る。

以下の例では関数sd(標準偏差を計算する関数)を誤って数値演算の式に使用してしまった例。

> sd
function (x, na.rm = FALSE)
sqrt(var(if (is.vector(x)) x else as.double(x), na.rm = na.rm))
<bytecode: 0x00000000060dadd0>
<environment: namespace:stats>
> sd(1:10)
[1] 3.02765
> 1 + sd
1 + sd でエラー:  二項演算子の引数が数値ではありません
> sd <- 2
> 1 + sd
[1] 3

Rの機能として、標準の組み込み関数名ですらベクトルに使用できてしまうことがある。

« 2017年1月 | トップページ | 2017年3月 »

無料ブログはココログ

■■

■■■