1

特定の基準に従ってパネル データをセグメント化し、各セグメントで要約統計を実行したいと考えています。データ:

  store year    rev space  market
      1 2004 110000  1095     136
      1 2005 110000  1095     136
      1 2006 110000  1095     136
      1 2007 120000  1095     136
      2 2004  35000   800     136
      3 2004  45000  1000     136
      3 2005  45000  1000     136
      3 2006  45000  1000     136
      3 2007  45000  1000     136
      4 2005  17500   320     136
      4 2006  17500   320     136
      4 2007  17500   320     136
      5 2005  45000   580     191
      5 2006  45000   580     191
      5 2007  45000   580     191
      6 2004   7000   345     191
      6 2005   7000   345     191
      6 2006   7000   345     191
      7 2007  10000   500     191

上記の例から、店舗を参入者、退出者、現職者に分けたいと思います。たとえば、期間中に市場から撤退した店舗の数を調べたいとします。これは次のようになります。

 store year   rev space  market
      2 2004 35000   800     136
      6 2006  7000   345     191

市場に参入しました:

 store year    rev space  market
      4 2005  17500   320     136
      5 2005  45000   580     191
      7 2007  10000   500     191

そして、その期間を通じて現職のままでした:

 store year    rev  space  market
      1 2004 110000   1095     136
      1 2005 110000   1095     136
      1 2006 110000   1095     136
      1 2007 120000   1095     136     
      3 2004  45000   1000     136
      3 2005  45000   1000     136
      3 2006  45000   1000     136
      3 2007  45000   1000     136

私はそのようなタスクを実行するのに十分なRの経験がないため、入力をいただければ幸いです。

4

1 に答える 1

3

使用する良い言い訳のように見えますdata.table:

library(data.table)
setDT(dat)

dat[, if(!max(dat$year) %in% year) tail(.SD,1) , by=store]

#   store year   rev space market
#1:     2 2004 35000   800    136
#2:     6 2006  7000   345    191


dat[, if(!min(dat$year) %in% year) head(.SD,1) , by=store]

#   store year   rev space market
#1:     4 2005 17500   320    136
#2:     5 2005 45000   580    191
#3:     7 2007 10000   500    191

dat[, if(min(dat$year) %in% year & max(dat$year) %in% year) .SD , by=store]

#   store year    rev space market
#1:     1 2004 110000  1095    136
#2:     1 2005 110000  1095    136
#3:     1 2006 110000  1095    136
#4:     1 2007 120000  1095    136
#5:     3 2004  45000  1000    136
#6:     3 2005  45000  1000    136
#7:     3 2006  45000  1000    136
#8:     3 2007  45000  1000    136
于 2015-02-03T03:32:01.467 に答える