同じクラスのオブジェクトのリストのメソッドを定義するにはどうすればよいですか?
例えば。
foo <- letters[1:5]
foo2 <- letters[6:10]
class(foo) <- "abc"
class(foo2) <- "abc"
new_method <- function(...) {UseMethod("new_method", ...)}
new_method.abc <- function(...) {do.call("c", list(...))}
# use results in error
new_method(foo,foo2)
Error in new_method(foo, foo2) : '...' used in an incorrect context
ここで...
は、すべて同じクラスを持つオブジェクトの任意の長さのリストになりたいと思い、それらを使って何かをしたいと考えています (実際のクラスのユースケースに固有の、それらを結合します)。
...
メソッドディスパッチに送信できるクラスがないことは私には理にかなっています。new_method.list
ただし、存在しない/存在しないため、単純な書き直しも機能しません
new_method <- function(...) {UseMethod("new_method", list(...))}
new_method(foo,foo2)
Error in UseMethod("new_method", list(...)) :
no applicable method for 'new_method' applied to an object of class "list"