2017-10-06 7 views
0

私は現在、統計モデルを表す属性のリストであるオブジェクトを扱っています。たとえば、行列、数値ベクトル、整数があるとします。Rに特定のクラスのオブジェクトをプロットする方法を教えてください。

myobj = list(amatrix = matrix(1:9,3,3),avector = c(1:3),aninteger = 1) 
class(myobj) = 'myclass' 

何らかの理由で、このクラスのオブジェクトを表すプロットを作成できるとします。 plot(myobj)は、オブジェクトにクラス'myclass'があることを認識させ、希望の方法で印刷します(例:image(myobj$amatrix))。

私は、本質的に、Rのプロット関数をどのように変更して新しく定義されたオブジェクトクラスを扱うかを知っていると思いますか?この変更を実行するときに、ggplotのような他のパッケージの機能を使用できますか?

より一般的な意味で、オブジェクトの異なるクラスを扱う関数は、各クラスに対してどのように行動するのかを知っていますか?

私はRのクラスでほとんど経験していないので、クラスについての簡単なガイドでさえ役立つはずです。独自のメソッドを定義することができ@emillimanによってmentionnedとして

+3

あなたはあなたのクラスのS3メソッドを設定します。情報については、[Hadley Wickham's book](http://adv-r.had.co.nz/S3.html)を参照してください。基本的に 'plot.myclass'を定義する必要があります – emilliman5

答えて

1

は:

myobj = list(amatrix = matrix(1:9,3,3),avector = c(1:3),aninteger = 1) 
class(myobj) <- 'myclass' 
plot.myclass <- function(x) image(x$amatrix) 

methods(plot) # check the 4th element of 3rd line :) (list will differ depending on what packages are loaded) 
# [1] plot.acf*   plot.data.frame* plot.decomposed.ts* plot.default  plot.dendrogram* plot.density*  plot.ecdf   
# [8] plot.factor*  plot.formula*  plot.function  plot.hclust*  plot.histogram*  plot.HoltWinters* plot.isoreg*  
# [15] plot.lm*   plot.medpolish*  plot.mlm*   plot.myclass  plot.ppr*   plot.prcomp*  plot.princomp*  
# [22] plot.profile.nls* plot.R6*   plot.raster*  plot.spec*   plot.stepfun  plot.stl*   plot.table*   
# [29] plot.ts    plot.tskernel*  plot.TukeyHSD* 

#and plot : 
plot(myobj) 
関連する問題