2013-04-19 31 views
5

Tôi có câu hỏi về Lớp tham chiếu. Câu hỏi của tôi là trong bối cảnh của một gói R tôi đang phát triển rCharts. Nó sử dụng các lớp tham chiếu để tạo các ô tương tác từ R.Lớp tham chiếu có thể được thực hiện cho các cuộc gọi nhật ký

Tạo một ô liên quan đến một loạt các cuộc gọi. Đây là một ví dụ, trong đó một scatterplot được tạo ra lúc đầu tiên và sau đó một cốt truyện được thêm vào.

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

Bây giờ, vì lớp tham chiếu giống như đóng cửa, tôi tự hỏi liệu có thể ghi nhật ký các cuộc gọi được thực hiện hay không. Ý tưởng là nếu tôi có thể đăng nhập chuỗi các cuộc gọi được thực hiện, sau đó tôi có thể tự động chèn mã nguồn được sử dụng để tạo hình ảnh hóa, cùng với html.

Tôi đang cố gắng xem liệu tôi có thể sử dụng số sys.function hoặc match.call, nhưng không nhận được bất kỳ đâu. Nếu ai đó có thể chỉ cho tôi cách tôi có thể tiếp cận điều này, nó sẽ được nhiều đánh giá cao.

+2

Giải pháp phải công bằng: trong mỗi phương pháp bạn sẽ cần một cái gì đó như 'cuộc gọi << - c (cuộc gọi, danh sách (match.call()))' – hadley

+0

Cảm ơn, điều đó đã hoạt động rất tốt! Có lẽ tôi nên đăng bài này như một câu hỏi khác, nhưng cách được đề nghị để chạy lại danh sách các cuộc gọi là gì. – Ramnath

+2

Chỉ cần 'eval()' chúng - nhưng nếu bạn muốn làm điều đó, bạn cũng sẽ cần phải nắm bắt môi trường mà chúng được thực thi với 'parent.frame()' – hadley

Trả lời

2

Như @hadley nói:

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

Rất vui khi trông đã làm việc. Chúng ta hãy đóng cửa. :)

Các vấn đề liên quan