我有一个数据集(dat),如下所示:
Person IPaddress
36598035 222.999.22.99
36598035 222.999.22.99
36598035 222.999.22.99
36598035 222.999.22.99
36598035 222.999.22.99
36598035 444.666.44.66
37811171 111.88.111.88
37811171 111.88.111.88
37811171 111.88.111.88
37811171 111.88.111.88
37811171 111.88.111.88它反映了在一段时间内登录网站的个人的实例。我需要这样的数据:
Person IPaddress Number of Logins
36598035 222.999.22.99 6
37811171 111.88.111.88 5因此,与同一个人的多个条目不同,每个人只有一行,并统计了他们登录的次数。
另外,在我的示例中,您会注意到person 36598035登录的IP地址超过一个。当发生这种情况时,我希望最终数据集中的IP地址反映模式IP地址--换句话说,个人最频繁登录的IP地址。
发布于 2014-10-14 15:25:33
您可以将data.table用于简洁的解决方案:
library(data.table)
setDT(dat)
dat[, list(IPaddress=names(which.max(table(IPaddress))),
Logins=.N),
by=Person]https://stackoverflow.com/questions/26364098
复制相似问题