Bardzo się na to spóźniłem, ale było to pierwsze pytanie, które się pojawiło, gdy szukałem tego pytania. Dlatego chciałbym dodać moje rozwiązanie dla przyszłych widzów, którzy napotkają to pytanie.
Rozwiązałem to, używając funkcji zamiast obiektu. Załóżmy na przykład, że chcemy porównać dwa rozkłady beta z różnymi parametrami. Uciekamy:
z1<-rbeta(10000,5,5)
z2<-rbeta(10000,20,20)
plotit<-function(vector,alpha,beta){
plot(density(vector),xlim=c(0,1))
abline(v=alpha/(alpha+beta),lty="longdash")
}
I zapisuj wykresy jako funkcje, a nie obiekty.
z.plot1<-function(){plotit(z1,5,5)}
z.plot2<-function(){plotit(z2,20,20)}
Następnie możemy nazwać każdy wykres tak, jak chcemy, po prostu nazywając te dwa wykresy funkcjami, a nie obiektami.
z.plot1()
kreśli pierwszą działkę i
z.plot2()
kreśli drugą.
Mam nadzieję, że pomoże to komuś, kto natknie się na to później!
plot
jest typem ogólnym iplot
o ile wiem , różne metody zwracają takie obiekty.plot.default
jednak rzeczywiście powracaNULL
.