max()
以下のように関数を定義しました。
max <- function(...) max(...,na.rm=T)
しかし、次のエラーで計算に失敗しmax(1:5)
ます:Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
の結果を見るtraceback()
と、問題が特定されます。
88: max(..., na.rm = T) at PositionMeth.R#1521
87: max(..., na.rm = T) at PositionMeth.R#1521
86: max(..., na.rm = T) at PositionMeth.R#1521
85: max(..., na.rm = T) at PositionMeth.R#1521
84: max(..., na.rm = T) at PositionMeth.R#1521
新しいmax(...)
関数は、元の関数ではなく、本体でそれ自体を呼び出していmax()
ます。簡単な解決策は、関数の名前を変更することです: Max <- function(...) max(...,na.rm=T)
. 名前を変更せずに、他の良いオプションはありますmax()
かmax(...)
?