我正在尝试为每个ICPSR找到主题比例。数据看起来像这样。
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)))
。但这并没有找到我想要的输出。
我希望能有任何命令或代码建议。谢谢!
答案 0 :(得分: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