You are currently browsing the monthly archive for December 2012.

We’re pleased to announce new versions of ggplot2 (0.9.3) and plyr (1.8).  To get up and running with the new versions, start a clean R session without ggplot2 or plyr loaded, and run install.packages(c("ggplot2", "gtable", "scales", "plyr")). Read on to find out what’s new.

ggplot2 0.9.3

Most of the changes version 0.9.3 are bug fixes. Perhaps the most visible change is that ggplot will now print out warning messages when you use stat="bin" and also map a variable to y. For example, these are valid:

ggplot(mtcars, aes(wt, mpg)) + geom_bar(stat = "identity")
ggplot(mtcars, aes(cyl)) + geom_bar(stat = "bin")

But this will result in some warnings:

ggplot(mtcars, aes(wt, mpg)) + geom_bar(stat = "bin")
# The default stat for geom_bar is "bin", so this is the same as above:
ggplot(mtcars, aes(wt, mpg)) + geom_bar()

The reason for this change is to make behavior more consistent – stat_bin generates a y value, and so should not work when you also map a value to y.

For a full list of changes, please see the NEWS file.

plyr 1.8

Version 1.8 has 28 improvements and bug fixes. Among the most prominent:

  • All parallel plyr functions gain a .paropts argument, a list of options that is passed onto foreach which allows you to control parallel execution.
  • progress_time is a new progress bar contributed by Mike Lawrence estimates the amount of time remaining before a job is complete
  • The summarise() function now calculates columns sequentially, so you can calculate new columns from other new columns, like this:
       summarise(mtcars, x = disp/10, y = x/10)

    This behavior is similar to the mutate() function. Please be aware that this could change the behavior of existing code, if any columns of the output have the same name but different values as columns in the input. For example, this will result in different behavior in plyr 1.7 and 1.8:

       summarise(mtcars, disp = disp/10, y = disp*10)

    In the old version, the y column would equal mtcars$disp * 10, and in the new version, it would equal mtcars$disp.

  • There are a number of performance improvements: a*ply uses more efficient indexing so should be more competitive with apply; d*ply, quickdf_df and idata.frame all have performance tweaks which will help a few people out a lot, and a lot of people a little.

For a full list of changes, please see the NEWS file.

Last month we released Shiny, our new R package for creating interactive web applications. The response from the community has been extremely encouraging–we’ve received a lot of great feedback that has helped us to make significant improvements to the framework already!

Shiny 0.2.3 on CRAN

Starting with Shiny 0.2.3, you can install the latest stable version of Shiny directly from CRAN. Since the initial release, we’ve added some interesting features to Shiny, most notably the ability to offer on-the-fly file downloads. We’ve also fixed some bugs, including an issue with runGist that caused it to fail on many Windows systems.

Install or upgrade now by running: install.packages('shiny')

Coming soon: Shiny Server

While Shiny works great today for running apps on your own machine, we indicated in our original blog post that for web-based deployment we’d be offering hosting services and a software package for deploying Shiny applications on a server.

Today we have more details to share about Shiny Server, the software package which will allow you to deploy Shiny applications on your own server:

  • Free and open source (AGPLv3 license)
  • Host multiple applications on the same port, with a different URL path per application
  • Allows Shiny applications to work with Internet Explorer 8 and 9
  • Automatically starts and stops R sessions as needed
  • Detects and recovers from crashed R sessions
  • Designed to serve applications directly to browsers, or be proxied behind another web server like Apache/Nginx
  • Works across network gateways and proxies that don’t support websockets

Our goal is to begin beta testing by the end of January. Shiny Server will require Linux at launch, though we will likely add Windows and Mac support later.

While we previously said that Shiny Server would be commercial software, we’ve decided to make it free and open source instead. Later in 2013 we hope to introduce a paid edition of Shiny Server that will include additional features that are targeted at larger organizations.

That’s all we have on the Shiny front for now. If you have questions, leave us a comment, or drop by our active and growing community at shiny-discuss!