「could not find function」のエラーが出る2つのケースと対処法

Exploratory で R の関数を使ったときに、次のようなエラーメッセージが表示されることがあります。

could not find function "xxxxx"

これは「指定した名前の関数が見つからない」という意味のエラーです。

関数名のタイプミスがないのにこのエラーが出る場合、原因は大きく分けて次の2つのケースがあります。それぞれ対処法が異なるので、まずどちらのケースなのかを切り分けてください。

  1. 使いたい関数を含むR パッケージがプロジェクトに読み込まれていない
  2. 使いたい 自作関数(カスタム R スクリプト)がプロジェクトに登録されていない

ケース1: R パッケージが読み込まれていない

GinidistHaversine のように、R の関数の多くは特定のパッケージに含まれています。そのパッケージがプロジェクトに読み込まれていないと、関数名が正しくても could not find function のエラーになります。

このケースの詳しい対処法は、以下の既存の投稿で紹介しています。

ケース2: 自作関数(カスタム R スクリプト)が登録されていない

Exploratory では、よく使う処理を 自作関数(カスタム R スクリプト) として定義し、プロジェクトの中で呼び出すことができます。この自作関数を使おうとしたときにも、パッケージの関数とまったく同じ could not find function のエラーが出ることがあります。

この場合は、いくら R パッケージをインストールしても解決しません。原因は、その自作関数がプロジェクトに登録されていないことです。たとえば次のような状況で起こります。

  • 自作関数をまだ作成・登録していないのに、関数名だけをコマンドで使ってしまっている
  • 別のプロジェクトで作った自作関数を、今のプロジェクトに登録していない

自作関数の作り方、登録方法については、以下のノートをご参照ください。