【发布时间】:2019-06-19 04:41:41
【问题描述】:
简而言之,我正在寻找一种方法来计算分析师对特定年份的公司预测的唯一数量。
输入
dt <- data.table(CUSIP = c(1,1,1,1,2,2,2,2,2,2), Fdate = c("2000-12-31","2000-12-31","2001-12-31","2001-12-31","2000-12-31","2000-12-31","2000-12-31", "2001-12-31", "2001-12-31", "2001-12-31"), Analys = c(7649, 9845, 44283, 7649, 9845, 37856, 63528, 9845, 88254, 88254))
看起来已经有人问过Count unique values of a column by pairwise combinations of another column in R 但是我无法让它工作。
根据该问题的描述解决方案,结果不是我想要的。因为它计算并显示了 fdate 和分析师的组合。但是,我想要给定公司和预测年份的唯一分析师数量的结果。
通过r中另一列的成对组合计算一列的唯一值的结果:
dt.cj <- merge(dt, dt, by ="Fdate", all = T, allow.cartesian = T)
dt.res <- dt.cj[Analys.x < Analys.y, .(cnt = length(unique(CUSIP.x))),by = .(Fdate, Analys.x, Analys.y)]
CUSIP = 公司的唯一 ID。 Fdate = 预测所依据的日期。分析 = 分析师的 ID。
期望的输出:
output <- data.table(Reg.ID = c(1,1,2,2), Location = c("2000-12-31","2001-12-31"), Count = c(2,2,3,2))
【问题讨论】:
标签: r