我正在编写一组便利函数来清理一些数据导出,并重命名一些大型集(约100,000条记录)以提高清晰度。由于这主要用作实用程序,我认为我会给dplyr
动词的标准评估(SE)版本而不是非标准(NSE)对应物。但是,当我对它们进行微基准测试时,SE版本似乎要慢得多:
> library(dplyr)
> library(microbenchmark)
> microbenchmark(
+ rename = rename(exports, newid = recordid),
+ rename_ = rename_(exports, .dots = setNames("recordid", "newid")),
+ times = 10000
+ )
Unit: microseconds
expr min lq mean median uq max neval
rename 132.343 146.2445 177.7755 152.3795 170.249 9947.417 10000
rename_ 293.312 306.8130 371.8973 313.9005 358.598 10243.931 10000
我做错了吗?或者这只是这些功能的不良应用?