An immutable data frame works like an ordinary data frame, except that when you subset it, it returns a reference to the original data frame, not a a copy. This makes subsetting substantially faster and has a big impact when you are working with large datasets with many groups.

idata.frame(df)

Arguments

df

a data frame

Value

an immutable data frame

Details

This method is still a little experimental, so please let me know if you run into any problems.

Examples

system.time(dlply(baseball, "id", nrow))
#>    user  system elapsed 
#>   0.065   0.001   0.066 
system.time(dlply(idata.frame(baseball), "id", nrow))
#>    user  system elapsed 
#>    0.07    0.00    0.07