2014-03-06 132 views
1

我在賬單上有一個數據框,其中包含'year'列,'issue'列和'sub'列問題。'一個簡化的例子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新手(顯然),並且我無法在線查找相關代碼。謝謝你的幫助!!

回答

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 
相關問題