Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pkgs <- list("hflights", "doParallel", "foreach", "dplyr", "data.table", "microbenchmark")
- sapply(pkgs, require, character.only = T)
- data(hflights)
- hflights_DT <- data.table(hflights)
- microbenchmark(
- transform = {
- ### THE GENERIC FUNCTION MODIFYING THE DATA.FRAME, SIMILAR TO DATA.FRAME() ###
- transform(hflights, wday = ifelse(DayOfWeek %in% c(6, 7), 'weekend', 'weekday'),
- delay = ArrDelay + DepDelay)
- },
- within = {
- ### EVALUATE THE EXPRESSION WITHIN THE LOCAL ENVIRONMENT ###
- within(hflights, {wday = ifelse(DayOfWeek %in% c(6, 7), 'weekend', 'weekday')
- delay = ArrDelay + DepDelay})
- },
- mutate = {
- ### THE SPECIFIC FUNCTION IN DPLYR PACKAGE TO ADD VARIABLES ###
- mutate(hflights, wday = ifelse(DayOfWeek %in% c(6, 7), 'weekend', 'weekday'),
- delay = ArrDelay + DepDelay)
- },
- data.table = {
- ### DATA.TABLE ###
- hflights_DT[, `:=`(wday = ifelse(DayOfWeek %in% c(6, 7), 'weekend', 'weekday'),
- delay = ArrDelay + DepDelay)]
- }
- )
- # Unit: milliseconds
- # expr min lq mean median uq max neval
- # transform 168.17041 178.67501 185.84942 183.13138 187.97160 231.0397 100
- # within 68.20806 72.91385 81.53380 75.11322 83.05596 124.4741 100
- # mutate 68.63053 72.61046 78.44092 74.66822 78.68297 127.4133 100
- # data.table 68.29788 72.54419 78.61315 75.00599 78.44248 119.8358 100
Advertisement
Add Comment
Please, Sign In to add comment