大数据框架中的高效字符串值计数

时间:2011-08-15 14:54:15

标签: r plyr

我有一个带有字符串值列(链接)的大型数据帧(~600K行)

doc_id,link
1,http://example.com
1,http://example.com
2,http://test1.net
2,http://test2.net
2,http://test5.net
3,http://test1.net
3,http://example.com
4,http://test5.net

我想计算帧中某个字符串值出现的次数。结果应如下所示:

link, count
http://example.com, 3
http://test1.net, 2
http://test2.net, 1
http://test5.net, 2

在R中有一种有效的方法吗?由于帧大小,将帧转换为矩阵不起作用。目前我正在使用plyr包,但这太慢了。

1 个答案:

答案 0 :(得分:5)

table函数计算出现次数 - 与ddply相比速度非常快。所以,或许这样的事情:

# some sample data
set.seed(42)
df <- data.frame(doc_id=1:10, link=sample(letters[1:3], 10, replace=TRUE))

cnt <- as.data.frame(table(df$link))
# Assign appropriate names (optional)
names(cnt) <- c("link", "count")
cnt

其中给出了以下输出:

  link count
1    a     2
2    b     3
3    c     5