Archiwa tagu: r project S5

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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)