【发布时间】:2019-03-19 23:52:49
【问题描述】:
我有这个数据集:
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。所以在一个新的 data.table 中,从dt 中提取的唯一行应该属于集群 X,对于区域 D,它们应该是集群 Z 等。
【问题讨论】:
标签: r filter data.table subset