【发布时间】:2013-04-24 19:43:51
【问题描述】:
我有一个记录事件的data.table,例如用户 ID、居住国家和事件。
例如,
dt <- data.table(user=c(rep(3, 5), rep(4, 5)),
country=c(rep(1,4),rep(2,6)),
event=1:10, key="user")
如您所见,数据有些损坏:事件 5 报告用户 3 在国家/地区 2(或者他可能旅行过 - 这对我来说无关紧要)。 所以当我尝试总结数据时:
dt[, country[.N] , by=user]
user V1
1: 3 2
2: 4 2
我为用户 3 输入了错误的国家/地区。 理想情况下,我想为用户获取最常见的国家和地区 他在那里度过的时间百分比:
user country support
1: 3 1 0.8
2: 4 2 1.0
我该怎么做?
实际数据有 ~10^7 行,因此解决方案必须扩展(这就是为什么我使用 data.table 而不是 data.frame 毕竟)。
【问题讨论】:
标签: r data.table