0

R の 'foo' クラスのジェネリック関数 predict() を作成して、predict() の 2 番目の引数がクラス 'foo' のときに呼び出されるようにします。

class(y.foo) <- "foo"

predict(x, y.foo)

出来ますか?どうやってするの?

4

1 に答える 1

1

これを試して。ここで私たちのfooメソッドは出力するだけ"foo"で、実際のコードでは、あなたが持っているメソッドに置き換えられfooます:

predict <- function(x, foo = NULL, ...) UseMethod("predict", foo)
predict.foo <- function(x, foo, ...) "foo" # replace with your foo method
predict.default <- function(x, foo = NULL, ...) if (is.null(foo)) 
         stats::predict(x, ...) else stats::predict(x, foo, ...)

今すぐテストしてください:

y.foo <- 1
class(y.foo) <- "foo"
predict(0, y.foo)
## [1] "foo"

fm <- lm(demand ~ Time, BOD)

predict(fm)
##        1        2        3        4        5        6 
## 10.24286 11.96429 13.68571 15.40714 17.12857 20.57143 

predict(fm, newdata = list(Time = 1:2))
##        1        2 
## 10.24286 11.96429 

predict(fm, list(Time = 1:2)) # same
##        1        2 
## 10.24286 11.96429 
于 2014-07-05T02:33:11.990 に答える