2013-04-19 9 views
5

Referans Sınıfları hakkında bir sorum var. Sorum, bir R paketinin içeriğinde rCharts geliştiriyorum. R.Referans Sınıfları Günlük Çağrılarına Hazırlanabilir

'dan etkileşimli çizimler oluşturmak için referans sınıflarını kullanır. Bir çizim oluşturmak bir dizi çağrı içerir. Burada ilk önce bir dağılım grafiğinin oluşturulduğu ve daha sonra bir satır grafiğinin eklendiği bir örnek. Referans Sınıf bir kapatma gibidir beri yapılan çağrılar oturum mümkün olsaydı

p1 <- rPlot(mpg ~ cyl, data = mtcars, type = 'point') 
p1$layer(copy_layer = T, type = 'line') 

Şimdi, merak ediyorum. Fikir şu ki, yapılan çağrıların sırasını kaydedebilirsem, o zaman html ile birlikte bir görselleştirme oluşturmak için kullanılan kaynak kodunu otomatik olarak ekleyebilirim.

sys.function veya match.call'dan yararlanıp faydalanmayacağımı görmeye çalışıyordum, ancak hiçbir yere gitmiyorum. Birisi bana bu yaklaşıma nasıl yaklaşabileceğime işaret edebilirse çok takdir edilecektir.

+2

Çözüm oldukça iyi olmalı: Her bir yöntemde 'aramalar << - c (aramalar, liste (match.call()))' – hadley

+0

gibi bir şeye ihtiyacınız olacak Harika teşekkürler! Belki de bunu farklı bir soru olarak göndermeliyim, ancak bir arama listesini yeniden çalıştırmak için önerilen yol nedir? – Ramnath

+2

Sadece 'eval() 'onları - ama eğer bunu yapmak istiyorsanız, ayrıca' parent.frame()' – hadley

cevap

2

@hadley belirtildiği gibi:

calls <<- c(calls, list(match.call())) 

sevindiği, çalışmış gibi görünüyor. Bunu kapatalım. :)