计算另一列中特定值的一列中的唯一值,

时间:2014-03-06 00:21:34

标签: r

我在账单上有一个数据框,其中包含(以及其他变量)“年份”列,“发行”列和“子问题”列。简化示例df如下所示:

year   issue   sub issue 
1970   4       20
1970   3       21
1970   4       22
1970   2       8
1971   5       31
1971   4       22
1971   9       10
1971   3       21
1971   4       22
等等,大约60年。我想计算每年的问题和子问题列中的唯一值,并使用它们来创建新的df-dat2。使用上面的df,dat2看起来像这样:

year   issues    sub issues
1970    3        4
1971    4        4

厌倦了各种因素,我确认所有列中的值都是整数,如果这会产生影响。我是R的新人(显然),我无法在网上找到这个特定目的的相关代码。谢谢你的帮助!!

1 个答案:

答案 0 :(得分:5)

这是一个单行,aggregate

with(d,aggregate(cbind(issue,subissue) ~ year,FUN=function(x){length(unique(x))}))

返回:

  year issue subissue
1 1970     3        4
2 1971     4        4
相关问题