始める無料で始める

S3メソッドを作る(1)

ジェネリック関数そのものは、単体では何もしません。動作させるにはメソッドが必要です。メソッドは通常の関数ですが、次の2つの条件を満たします。

  1. メソッド名は generic.class の形式にすること。
  2. メソッドのシグネチャ(メソッドに渡される引数)は、ジェネリックのシグネチャを含むこと。

文法は次のとおりです。

generic.class <- function(some, arguments, ...) {
  # 何かを行う
}

この演習はコースの一部です

R における S3 と R6 を使ったオブジェクト指向プログラミング

コースを見る

演習の手順

ジェネリック関数 get_n_elements() はワークスペースに定義済みです。

  • かっこを付けずに関数名を入力して、どのように動くかを確認してください。
  • data.frame オブジェクトの要素数を計算する S3 メソッドを書きましょう。
    • 関数名は、ジェネリック名に . を挟んで入力クラス名を続けたものにします。
    • 入力引数は x... にします。
    • 関数本体は1行にし、データフレームの要素数(行数×列数)を返してください。
  • sleepdocs)データセットに対して 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
コードを編集して実行