dplyr auf data.table, verwende ich data.table wirklich?

Wenn ich benutze dplyr -Syntax über einemDatentabell, bekomme ich alle Geschwindigkeitsvorteile von datatable, während ich immer noch die Syntax von dplyr verwende? Mit anderen Worten, verwende ich die Datentabelle falsch, wenn ich sie mit Dplyr-Syntax abfrage? Oder muss ich eine reine datierbare Syntax verwenden, um die gesamte Leistung zu nutzen?

Vielen Dank im Voraus für Ratschläge. Code-Beispiel:

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))

Ergebnisse

#         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

Hier ist die datierbare Entsprechung, die ich mir ausgedacht habe. Ich bin mir nicht sicher, ob es der guten Praxis von DT entspricht. Aber ich frage mich, ob der Code hinter den Kulissen wirklich effizienter ist als die Dplyr-Syntax:

diamondsDT [cut != "Fair"
        ] [, .(AvgPrice = mean(price),
                 MedianPrice = as.numeric(median(price)),
                 Count = .N), by=cut
        ] [ order(-Count) ]

Antworten auf die Frage(6)

Ihre Antwort auf die Frage