如果我在 可数据化上使用 Dplyr语法,我是否在使用 dplyr 语法的同时获得了 dattable 的所有速度优势?换句话说,如果使用 dplyr 语法查询数据表,是否会错误地使用它?或者我需要使用纯数据可表语法来利用它的所有能力。
提前感谢您的建议。代码示例:
library(data.table)
library(dplyr)
diamondsDT <- data.table(ggplot2::diamonds)
setkey(diamondsDT, cut)
diamondsDT %>%
filter(cut != "Fair") %>%
group_by(cut) %>%
summarize(AvgPrice = mean(price),
MedianPrice = as.numeric(median(price)),
Count = n()) %>%
arrange(desc(Count))
结果:
# cut AvgPrice MedianPrice Count
# 1 Ideal 3457.542 1810.0 21551
# 2 Premium 4584.258 3185.0 13791
# 3 Very Good 3981.760 2648.0 12082
# 4 Good 3928.864 3050.5 4906
下面是我提出的可数据等价性。不确定它是否符合 DT 的良好做法。但我想知道这些代码是否真的比后台的 dplyr 语法更有效:
diamondsDT [cut != "Fair"
] [, .(AvgPrice = mean(price),
MedianPrice = as.numeric(median(price)),
Count = .N), by=cut
] [ order(-Count) ]