Thursday, 24 May 2012

Programming in R - Advanced

R is a powerful statistical program and programming environment. We offer a dozen courses in R, and one in particular prepares you to be a skilled programmer in R.  Dr. Hadley Wickham will lead his online course, "Programming in R Advanced," at For more please visit at

In "Programming in R Advanced," you will hone your skills to work with a variety of data types and data sources in R.  You'll also learn some techniques for programming "in-the-large," when you are trying to provide a suite of functions to flexibly solve a large class of problems. In particular, you'll learn more about functions, environments and closures, and the basics of object oriented programming with S3.

Dr. Hadley Wickham is the author of "ggplot2: Elegant Graphics for Data Analysis (Use R)" and a contributor to Cook & Swayne's "Interactive and Dynamic Graphics for Data Analysis: Using R and GGobi" (2007). His research interests include interactive and dynamic graphics, developing practical tools for data analysis, and in gaining better understanding of complex statistical models through visualization. An Assistant Professor at Rice University, Dr. Wickham has developed 15 R projects, and written numerous articles, chapters, and other papers and in 2006 he won the John Chambers Award for Statistical Computing for his work on the ggplot and reshape R packages. Participants can ask questions and exchange comments with Dr. Wickham via a private discussion board throughout the period.

Aim of Course:
Becoming a skilled R programmer requires you to master new techniques of abstraction, particularly techniques that come from R's functional heritage. In this course, you will learn what these techniques are, and you will take the first steps down the road to mastery of them.

Who can take this course:
To get the most out of this course, you should have some experience programming in R already: you should be familiar with writing functions, and the basic data structures of R (vectors, matrices, arrays, lists and data frames). You will find the course particularly useful if you are an experienced R user looking to take the next step, or if you are moving to R from other programming languages and you want to quickly get up to speed with R's unique features.

Course Program:

Course outline: The course is structured as follows

SESSION 1: First Order Functions.
  • Anonymous functions.
  • Functions that write functions (closures).
  • Functions that take functions as arguments (higher-order function).
  • Storing functions in data structures.
  • R has first order functions: In this session, you will learn how to use these abilities to write effective code.

SESSION 2: Controlling Evaluation.
  • Quoting.
  • Evaluating.
  • Scoping.
  • Lazy evaluation.
  • Computing on the language.
  • One of the neat things about R is how it gives you much more control over evaluation than other programming languages. In this session, you will learn how functions like subset and transform work. You will also learn common pitfalls of these techniques and how to avoid them in your own code. We will conclude with a brief exploration of R functions that let you modify R code.

SESSION 3: Object Oriented Programming in R
  • S3
  • S4
  • reference classes
  • OO is a useful technique for organising large amounts of code in a way that makes it easier to understand. In this session, you will learn about the three object oriented systems in base R. I will focus mainly on S3 and S4, as they differ the most from the OO-systems you are probably familiar, and are so important for understanding existing R code. We will touch on the new reference classes, which provide a framework much more like Java or C#.

SESSION 4: Development Best Practices
  • Correct code.
  • Maintainable code.
  • Fast code.
  • The course will conclude with a survey of development best-practices including a discussion of code style, commenting, profiling, improving performance and testing. We will touch on the new byte-code compiler in R, and on writing high-performance code in C++ with the Rcpp package.
You will be able to ask questions and exchange comments with the instructors via a private discussion board throughout the course.   The courses take place online at in a series of 4 weekly lessons and assignments, and require about 15 hours/week.  Participate at your own convenience; there are no set times when you must be online. You have the flexibility to work a bit every day, if that is your preference, or concentrate your work in just a couple of days.

For Indian participants accepts registration for its courses at special prices in Indian Rupees through its partner, the Center for eLearning and Training (C-eLT), Pune (

For India Registration and pricing, please visit us at

Call: 020 66009116


No comments: