20 lis
R project – obiektowość
R project posiada trzy systemy obiektowe: S3, S4 i S5. Odniesienia i opisy tych systemów można znaleźć na stronach:
– https://github.com/hadley/devtools/wiki/R5 – opisującej nowy system S5,
– http://biecek.pl/R/RC/Jakub%20Derbisz%20R%20reference%20card%20classes.pdf, opisującej podstawowe operatory klas,
– http://stat.ethz.ch/R-manual/R-devel/library/methods/html/refClass.html, manual opisujący system S5 i funkcję setRefClass() służącą do tworzenia interfejsu klasy,
– http://www.youtube.com/watch?v=UZkaZhsOfT4, prezentacja zawierająca opis trzech ww. systemów oraz opis integracji R project z C++ poprzez pakiet Rcpp.
Zainteresowanym życzę miłej lektury. Poniżej natomiast przedtsawiam próbke kodu opisującej interfejs klasy account zaczerpniętej z prezentacji, do której link znajduje się na ostatniej pozycji ww. stron.
account <- setRefClass("Account_R5", fields = list( balance = "numeric", overdraft = "numeric" ), methods = list( withdraw = function(amount) { print("Compute withdraw...") }, deposit = function(amount) { print("Compute deposit...") } ) ) x <- account$new(balance = 10.0, overdraft = 0.0) x$withdraw(5) x$deposit(10)