ここに、Dealer、Product、Freqの3つのフィールドのデータがあります。私の目的は、各ディーラーの上位2件の売り上げを含むデータを作成することです。
以下のようにdata.tableを使用して実行しました。
library(data.table)
library(dplyr)
dt <- data.table(Dealer = c("A","B","A","A","B","A"),
Product = c("a","b","b","c","d","d"),
Freq = c(10,12,23,24,23,12))
dt[,.SD[order(Freq, decreasing = T)][seq_along(Freq) < 3], by = Dealer]
'dplyr'パッケージを使用して同様のことを行う方法。
ここでは、グループ化して、各グループのDealer
上位2つの値を見つけますFreq
。
dt %>% group_by(Dealer) %>% top_n(2, Freq) %>% ungroup
# # A tibble: 4 x 3
# Dealer Product Freq
# <fct> <fct> <dbl>
# 1 B b 12
# 2 A b 23
# 3 A c 24
# 4 B d 23
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加