14

次のように構造化されたデータで...

df <- data.frame(Category=c(rep("A",6),rep("B",6)),
      Year=rep(2010:2015,2),Value=1:12)

カテゴリ内の成長率列 (年別) を作成するのに苦労しています。このようなものを作成するためのコードを手伝ってくれる人はいますか...

Category Year Value Growth  
    A   2010    1   
    A   2011    2   1.000  
    A   2012    3   0.500  
    A   2013    4   0.333  
    A   2014    5   0.250  
    A   2015    6   0.200  
    B   2010    7     
    B   2011    8   0.143  
    B   2012    9   0.125  
    B   2013    10  0.111  
    B   2014    11  0.100  
    B   2015    12  0.091  
4

7 に答える 7

3

私のRパッケージgdiffの新しい関数を使用したBenのアイデアに基づく、よりエレガントなバリアント:

df <- data.frame(Category=c(rep("A",6),rep("B",6)),
  Year=rep(2010:2015,2),Value=1:12)

library(plyr)
ddply(df, "Category", transform,
      Growth=c(NA, kimisc::gdiff(Value, FUN = `/`)-1))

ここでgdiffは、遅延率を計算するために使用されます (遅延差の代わりにdiff)。

于 2013-11-14T12:43:32.123 に答える