5

次のような関数があるとします。

myf = function(x) {
res = dostuff(x)
res # this is a data.frame
}

について何か特別なことをしたいと思っています。resたとえば、 のような一般的な関数をいくつか作りたいprint.myf, summary.myf, ... ので、先に進んでそれにクラスを与えることができます。

myf = function(x) {
res = dostuff(x)
class(res) = 'myf'
res
}

しかし、この方法ではもう data.frame として使用できません。

4

2 に答える 2

4

はい、私の標準的な(単純な)例は

R> now <- Sys.time()
R> class(now)
[1] "POSIXct" "POSIXt" 
R> class(as.POSIXlt(now))
[1] "POSIXlt" "POSIXt" 
R> 

inherits("someClass")これは、 の結果をテストするのではなく、でテストするというプロのヒントの背後にある理由でもありclass(obj)=="someClass"ます。

于 2013-10-12T15:34:32.263 に答える