Tôi rất muộn để làm điều này, nhưng đó là câu hỏi đầu tiên xuất hiện khi tôi tìm kiếm câu hỏi. Vì vậy, tôi muốn thêm giải pháp của mình cho những người xem tương lai bắt gặp câu hỏi.
Tôi đã giải quyết điều này bằng cách sử dụng một hàm thay vì một đối tượng. Ví dụ: giả sử chúng ta muốn so sánh hai bản phân phối beta với các tham số khác nhau. Chúng tôi có thể chạy:
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")
}
Và lưu các ô dưới dạng hàm chứ không phải đối tượng.
z.plot1<-function(){plotit(z1,5,5)}
z.plot2<-function(){plotit(z2,20,20)}
Tiếp theo, chúng ta có thể gọi từng ô như chúng ta muốn bằng cách đơn giản gọi hai ô dưới dạng hàm chứ không phải đối tượng.
z.plot1()
vạch ra âm mưu đầu tiên và
z.plot2()
âm mưu thứ hai.
Hy vọng điều đó sẽ giúp những người tình cờ gặp phải điều này sau này!
plot
là một chung và cácplot
phương thức khác nhau trả về các đối tượng như vậy theo như tôi biết.plot.default
, tuy nhiên, thực sự trả lạiNULL
.