2017-02-16 4 views
1

私はRとdplyrを使っていくつかのデータ集計をしようとしています。私のデータフレームは、次の形式の多くの行を持っています他の行からの値に基づくdplyrでのグループの計算率

color year  score 
<fctr> <int>  <int> 

私はN色の異なるそれぞれの年の同じ数の行を持っています。これらのそれぞれについて、私はスコアを持っています。各色(グループ)内で、すべての得点の1年間の割合を計算したいと思います。例えば:

color year  score 
    <fctr> <int>  <int> 
1 blue 1980  43 
2 blue 1982   13 
3 red  1980   330 
4 red  1998   89 

I(例えば、青または赤)の各色グループ内の各列のスコアの商である「比」と呼ばれる新しい列とスコアと、このフレームを補強したいです固定年と行の、たとえば1980:

color year  score ratio 
    <fctr> <int>  <int>  
1 blue 1980  43  1 
2 blue 1982   13  0.302325581 
3 red  1980   330  1 
4 red  1998   89  0.269696969 

私はmutatesummarizeを使用する方法を知っているが、それは特定のを満たしている与えられた行のためのスコア値を選択するために、どのように私にははっきりしていません条件(この場合、1980年の行(そのうち1つが保証されている行))を各グループ内で使用します。

これを行うにはどうすればよいですか?

+3

% '%group_by'%>%mutate(ratio = score/score [1]) 'または '年'値が 'color'ごとに変化する場合、mutate(ratio = score/score [スコア[年== 1980]) ' – akrun

+1

@akrunこれは完全に動作します。ありがとうございました! – Kulluk007

+0

問題はありません、あなたを助けてうれしいです。私はいくつかの二重リンクがあるだろうと思う。 – akrun

答えて

1

akrunさんのコメントは私の質問に答え:

mutate(ratio = score/score[year==1980]) 

は、私はここに必要な正確に何です。

関連する問題