(This article was first published on Probability and statistics blog » r, and kindly contributed to R-bloggers)
If you are used to object oriented programing in a different language, the way R does things can seem a little strange and backwards. “proto” to the rescue. With this library you can simulate “normal” OOP. I found the examples for proto not so helpful, so to figure out how the package works I sent one lonely red ant on a drunken walk. Here’s my code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | library("proto") # Everybody likes ants ant <- proto( # Default values for the class variables xPos = 0, yPos = 0, name = character(), ) # What do ants do? They move ant$move <-function(.,xDisp=0, yDisp=0) { .$xPos = .$xPos + xDisp .$yPos = .$yPos + yDisp } # See the little red ant move ant$plot <- function(.) { points(.$xPos, .$yPos, pch=20, col="red") } # Instantiate the class. myAnt = ant myAnt$name = "George" plot(myAnt$xPos, myAnt$yPos, xlim=c(-10,10), ylim=c(-10,10), pch=20, col="red") for(i in 1:40) { # The ant is drunk on Kool Aid myAnt$move(rnorm(1),rnorm(1)) # The ant is lazy and will rest for a moment Sys.sleep(.5) # Plot the new location ant$plot() } cat("The ant named", myAnt$name, "is now located at (", myAnt$xPos, myAnt$yPos, ")\n") |
To leave a comment for the author, please follow the link and comment on his blog: Probability and statistics blog » r.
R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series,ecdf, trading) and more...

Zero Inflated Models and Generalized Linear Mixed Models with R.
Zuur, Saveliev, Ieno (2012).