我在账单上有一个数据框,其中包含(以及其他变量)“年份”列,“发行”列和“子问题”列。简化示例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的新人(显然),我无法在网上找到这个特定目的的相关代码。谢谢你的帮助!!
答案 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