2014-10-03 152 views
1

我正在嘗試查找每個ICPSR的主題比例。數據看起來像這樣。使用ddply計算比例

  ICPSR  date day  month year mention topic 
    169538 15444 2009-06-02 2  June 2009  1 18 
    169544 15444 2010-03-02 2  March 2010  1 20 
    169581 15444 2010-09-30 30 September 2010  1 18 
    169609 15444 2009-06-03 3  June 2009  1  1 
    169729 20909 2009-11-17 17 November 2009  1  9 
    169791 29317 2009-03-13 13  March 2009  1 13 

我想找到:對於每個ICPSR,每個主題的比例是多少。 爲了顯示我想要的輸出,它看起來像下面。

 ICPSR topic.1 topic.9 topic.13 topic.18 topic.20 
    1 15444 0.25  0  0  0.5  0.25 
    2 20909 0  1  0  0  0 
    3 29317 0  0  1  0  0 

我試圖用ddply,如: ddply(c.analyze1, c("ICPSR"), summarize, sum(mention)))/ddply(c.analyze1, c("ICPSR","topic"), summarize, sum(mention)))。但是這並沒有找到我想要的結果。

我希望可以有任何命令或代碼建議。謝謝!

回答

2

對此,您並不需要ddply。您可以使用prop.table

如果df是您的數據,

prop.table(table(df$ICPSR, df$topic), 1) 
#  
#   1 9 13 18 20 
# 15444 0.25 0.00 0.00 0.50 0.25 
# 20909 0.00 1.00 0.00 0.00 0.00 
# 29317 0.00 0.00 1.00 0.00 0.00