Plyr简单分组

时间:2011-10-18 16:11:42

标签: r plyr

我从MySQL表中获取数据,该表有2列(idDoc,tag),描述文档具有给定标记。当我使用数据框

ddply(tags,1)

我的目标是按ID对标签进行分组,所以我要执行以下步骤

> x=c(1,1,2,2)
> y=c(4,5,6,7)
> data.frame(x,y)
  x y
1 1 4
2 1 5
3 2 6
4 2 7

我想要的输出可能是列表(或其他任何结果)

 1 -> c(4,5)
 2 -> c(6,7)

此致

1 个答案:

答案 0 :(得分:2)

这是一个黑暗中的镜头,因为当你说你想要一个'关联'时,它并没有真正准确地描述任何特定的R数据结构,因此不清楚你希望输出采用什么形式。 / p>

但是一个基本的R可能性就是简单地使用split

split(tags$tag, tags$idDoc)

应返回一个命名列表,其中名称来自idDoc,每个列表元素是与该idDoc值关联的标记。但是会有重复。所以这可能会更好:

tapply(tags$tag,tags$idDoc,FUN = unique)

应返回每个idDoc唯一标记列表。

已编辑:无需匿名函数;只需传递unique)。