我有一个关于微博的数据集(600 Mb 和 5038720 次观察),我试图弄清楚一个用户在一小时内发布了多少推文(推文与一个相同的中间数)。以下是数据集的样子:
head(mydata)
uid mid year month date hour min sec
1738914174 3342412291119279 2011 8 3 21 4 12
1738914174 3342413045470746 2011 8 3 21 7 12
1738914174 3342823219232783 2011 8 5 0 17 5
1738914174 3343095924467484 2011 8 5 18 20 43
1738914174 3343131303394795 2011 8 5 20 41 18
1738914174 3343386263030889 2011 8 6 13 34 25
这是我的代码:
count <- function(x) {
length(unique(na.omit(x)))
}
attach(mydata)
hourPost <- aggregate(mid, by=list(uid, hour), FUN=count)
它在那里挂了大约半个小时,我发现所有的真实内存(24 Gb)都被使用了,它开始使用虚拟内存。知道为什么这个小任务会消耗这么多时间和内存,我应该如何改进它?提前致谢!