Rでオブジェクトを動的に強制する方法はありますか?
背景 渡されたオブジェクトのクラスに基づいて特定のメソッドを返すことができる要約用の関数ファクトリを作成しようとしています。特に、これはhttp://adv-r.had.co.nz/Functional-programming.html#lists-of-functionsの質問の 1 つです。
base::summary() のように機能するサマリー関数を実装しますが、関数のリストを使用します。クロージャを返すように関数を変更し、関数ファクトリとして使用できるようにします。
たとえば、いくつかのバリエーションを試しましたが、それらはすべて正しくない/不完全です。
object.list = list(df = data.frame(),fr=factor(), mx = matrix())
summary.new = function(y){
function(x,...){
UseMethod(summary,x)
}
}
summary.new.list = lapply(object.list, summary.new)
as.() のようなオブジェクトを動的に強制する方法があり、これを使用して汎用オブジェクトから適切なメソッドを返す方法があるかどうか疑問に思っています。
summary.new.list 関数
> summary.new.list
$df
function (x, ...)
{
UseMethod("summary", x)
}
<environment: 0x108b5edc>
$fr
function (x, ...)
{
UseMethod("summary", x)
}
<environment: 0x108b5de0>
$mx
function (x, ...)
{
UseMethod("summary", x)
}
<environment: 0x108b5ce4>
たとえば、オブジェクトに基づいて関数を呼び出したい。呼び出したいデータフレームの場合summary.new.list$df(data.frame(1:12,3,4))
。$df 関数はまだ一般的であるため、現在は機能していますが、 UseMethod の代わりに、そこから基本的な summary.data.frame 関数を呼び出したいと思います