У меня есть этот набор данных:
library(data.table)
dt <- data.table(
record=c(1:20),
area=rep(LETTERS[1:4], c(4, 6, 3, 7)),
score=c(1,1:3,2:3,1,1,1,2,2,1,2,1,1,1,1,1:3),
cluster=c("X", "Y", "Z")[c(1,1:3,3,2,1,1:3,1,1:3,3,3,3,1:3)]
)
, и я использовал решение из этого поста для создания этого резюме:
dt_summary =
dt[ , .N, keyby = .(area, score, cluster)
][ , {
idx = frank(-N, ties.method = 'min') == 1
NN = sum(N)
.(
cluster_mode = cluster[idx],
cluster_pct = 100*N[idx]/NN,
cluster_freq = N[idx],
record_freq = NN
)
}, by = .(area, score)]
dt_score_1 <- dt_summary[score == 1]
setnames(dt_score_1, "area", "zone")
Я хотел бы использовать результаты из dt_score_1
для фильтрации dt
на основе области / зоны и cluster / cluster_mode.Таким образом, в новой таблице data.table единственные строки, взятые из dt
для области A, должны принадлежать кластеру X, для области D они должны быть кластером Z и т. Д.