2014-10-03 2 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에 대해 각 주제의 비율을 찾으려고합니다. 원하는 출력을 표시하려면 다음과 같이 표시됩니다. ddply(c.analyze1, c("ICPSR"), summarize, sum(mention)))/ddply(c.analyze1, c("ICPSR","topic"), summarize, sum(mention))) :

 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를 사용하려고했다. 그러나 이것은 내 원하는 결과를 찾지 못합니다.

나는 어떤 명령이나 제안 사항이있을 수 있습니다. 고맙습니다!

답변

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