S3メソッドを作る(1)
ジェネリック関数そのものは、単体では何もしません。動作させるにはメソッドが必要です。メソッドは通常の関数ですが、次の2つの条件を満たします。
- メソッド名は
generic.classの形式にすること。 - メソッドのシグネチャ(メソッドに渡される引数)は、ジェネリックのシグネチャを含むこと。
文法は次のとおりです。
generic.class <- function(some, arguments, ...) {
# 何かを行う
}
この演習はコースの一部です
R における S3 と R6 を使ったオブジェクト指向プログラミング
演習の手順
ジェネリック関数 get_n_elements() はワークスペースに定義済みです。
- かっこを付けずに関数名を入力して、どのように動くかを確認してください。
data.frameオブジェクトの要素数を計算する S3 メソッドを書きましょう。- 関数名は、ジェネリック名に
.を挟んで入力クラス名を続けたものにします。 - 入力引数は
xと...にします。 - 関数本体は1行にし、データフレームの要素数(行数×列数)を返してください。
- 関数名は、ジェネリック名に
sleep(docs)データセットに対してget_n_elementsを呼び出し、結果を変数n_elements_sleepに代入します。- 結果を確認するため、
n_elements_sleepをコンソールに出力してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# View get_n_elements
get_n_elements
# Create a data.frame method for get_n_elements
___ <- ___
# Call the method on the sleep dataset
n_elements_sleep <- ___
# View the result
n_elements_sleep