r - 选择特定数字后的 n 行

标签 r selection rows

我使用这样的 data.frame:

       Country       Date balance_of_payment business_confidence_indicator consumer_confidence_indicator  CPI Crisis_IMF
1 Australia 1980-01-01              -0.87                       100.215                        99.780 25.4          0
2 Australia 1980-04-01              -1.62                       100.061                        99.746 26.2          0
3 Australia 1980-07-01              -3.70                       100.599                       100.049 26.6          0
4 Australia 1980-10-01              -3.13                       100.597                       100.735 27.2          0
5 Australia 1981-01-01              -2.73                       101.149                       101.016 27.8          0
6 Australia 1981-04-01              -4.11                       100.936                       100.150 28.4          0

我想使用Hmisc包中的describe(dataset)创建一个汇总统计。

我需要区分 Crisis_IMF1 之前的 n 个季度时间跨度、Crisis_IMF 为 1 的时间和状态 n - Crisis_IMF 之后的四分之一是 1。 为了选择 Crisis_IMF1 的时间,我做了 describe(dataset[dataset$Crisis_IMF==1,"balance_of_payment"])

但我不知道如何在事件发生后的n个季度(例如8)的时间跨度内进行命令。

编辑:

   dataset$Crisis_IMF
   [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  [60] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [119] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [178] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [237] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [296] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [355] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [414] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [473] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [532] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [591] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [650] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [709] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
 [768] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [827] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [886] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [945] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1004] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1063] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1122] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1181] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1240] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1299] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1358] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1417] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1476] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
[1535] 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
[1594] 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1653] 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1712] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1771] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
[1830] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1889] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[1948] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2007] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2066] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[2125] 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
[2184] 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2243] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2302] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2361] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[2420] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2479] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2538] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2597] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2656] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2715] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2774] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2833] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2892] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2951] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3010] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3069] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3128] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3187] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3246] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3305] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3364] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3423] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3482] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3541] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3600] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3659] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3718] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3777] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3836] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[3895] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[3954] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
[4013] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[4072] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[4131] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[4190] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[4249] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[4308] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

编辑2;有关数据集的更多信息:

             Country       Date balance_of_payment Crisis_IMF
1   Australia 1980-01-01              -0.87          0
2   Australia 1980-04-01              -1.62          0
3   Australia 1980-07-01              -3.70          0
4   Australia 1980-10-01              -3.13          0
5   Australia 1981-01-01              -2.73          0
6   Australia 1981-04-01              -4.11          0
7   Australia 1981-07-01              -3.98          0
8   Australia 1981-10-01              -5.27          0
9   Australia 1982-01-01              -5.31          0
10  Australia 1982-04-01              -4.67          0
11  Australia 1982-07-01              -3.30          0
12  Australia 1982-10-01              -3.24          0
13  Australia 1983-01-01              -3.45          0
14  Australia 1983-04-01              -2.86          0
15  Australia 1983-07-01              -3.58          0
...
137 Australia 2014-01-01              -2.18          0
138 Australia 2014-04-01              -3.44          0
139 Australia 2014-07-01              -3.04          0
140 Australia 2014-10-01              -2.39          0
141   Austria 1980-01-01              -3.97          0
142   Austria 1980-04-01              -3.89          0
143   Austria 1980-07-01              -1.84          0
144   Austria 1980-10-01              -1.60          0
145   Austria 1981-01-01              -2.74          0
146   Austria 1981-04-01              -2.88          0
147   Austria 1981-07-01              -2.83          0
148   Austria 1981-10-01              -2.06          0
149   Austria 1982-01-01              -0.63          0
150   Austria 1982-04-01               0.61          0
151   Austria 1982-07-01               2.42          0
152   Austria 1982-10-01               2.70          0

一个国家可能有不止一个危机时期。那例如在澳大利亚是从 1990-01-01 到 1991-04-01 和 2002-01-01 到 2005-01-01 的危机。我想创建 3 个不同的 describe 命令,它们显示变量在上述状态下的行为。

最佳答案

你没有提供完整的数据,所以我不得不猜测你的 Crisis_IMF 列有一个完整的零序列(危机前),然后是一个完整的 1 序列(危机期间) IMF 危机被认为是有效的),最后是连续的零序列(危机之后)。

下面我综合了自己的数据进行测试。我只合成了 Crisis_IMFbalance_of_payment 列,因为它们似乎是与您的问题相关的唯一列。我使用了 30 行,前 10 行在危机之前,接下来的 10 行在危机期间,最后 10 行在危机之后。我为 balance_of_payment 使用了某种随机抛物线弧,但这完全是随机的。

library('Hmisc');
set.seed(1);
N <- 30;
df <- data.frame(balance_of_payment=-5+2*seq(-1.5,1.5,len=N)^2+rnorm(N,0,0.2), Crisis_IMF=c(rep(0,N/3),rep(1,N/3),rep(0,N/3)) );
df;
##    balance_of_payment Crisis_IMF
## 1          -0.6252908          0
## 2          -1.0625579          0
## 3          -1.8228927          0
## 4          -1.8503850          0
## 5          -2.5744076          0
## 6          -3.2324647          0
## 7          -3.3561408          0
## 8          -3.6484112          0
## 9          -3.9805631          0
## 10         -4.4136342          0
## 11         -4.2642312          1
## 12         -4.6598435          1
## 13         -4.9904788          1
## 14         -5.3947830          1
## 15         -4.7696630          1
## 16         -5.0036359          1
## 17         -4.9550811          1
## 18         -4.6774634          1
## 19         -4.5735679          1
## 20         -4.4478071          1
## 21         -4.1687610          0
## 22         -3.9392921          0
## 23         -3.7811631          0
## 24         -3.8514970          0
## 25         -2.9444058          0
## 26         -2.6515349          0
## 27         -2.2006002          0
## 28         -1.9499174          0
## 29         -1.1949166          0
## 30         -0.4164117          0
crisisRange <- range(which(df$Crisis_IMF==1));
crisisRange;
## [1] 11 20
df$Off_Crisis <- c((1-crisisRange[1]):-1,rep(0,diff(crisisRange)+1),1:(nrow(df)-crisisRange[2]));
df;
##    balance_of_payment Crisis_IMF Off_Crisis
## 1          -0.6252908          0        -10
## 2          -1.0625579          0         -9
## 3          -1.8228927          0         -8
## 4          -1.8503850          0         -7
## 5          -2.5744076          0         -6
## 6          -3.2324647          0         -5
## 7          -3.3561408          0         -4
## 8          -3.6484112          0         -3
## 9          -3.9805631          0         -2
## 10         -4.4136342          0         -1
## 11         -4.2642312          1          0
## 12         -4.6598435          1          0
## 13         -4.9904788          1          0
## 14         -5.3947830          1          0
## 15         -4.7696630          1          0
## 16         -5.0036359          1          0
## 17         -4.9550811          1          0
## 18         -4.6774634          1          0
## 19         -4.5735679          1          0
## 20         -4.4478071          1          0
## 21         -4.1687610          0          1
## 22         -3.9392921          0          2
## 23         -3.7811631          0          3
## 24         -3.8514970          0          4
## 25         -2.9444058          0          5
## 26         -2.6515349          0          6
## 27         -2.2006002          0          7
## 28         -1.9499174          0          8
## 29         -1.1949166          0          9
## 30         -0.4164117          0         10
n <- 8;
describe(df[df$Off_Crisis>=-n&df$Off_Crisis<=-1,'balance_of_payment']);
## df[df$Off_Crisis >= -n & df$Off_Crisis <= -1, "balance_of_payment"]
##       n missing  unique    Info    Mean
##       8       0       8       1   -3.11
##
## -4.41363415781177 (1, 12%), -3.98056311135777 (1, 12%), -3.64841115885525 (1, 12%), -3.35614082447269 (1, 12%), -3.23246466374394 (1, 12%), -2.57440760140387 (1, 12%), -1.85038498107066 (1, 12%), -1.82289266659616 (1, 12%)
describe(df[df$Off_Crisis==0,'balance_of_payment']);
## df[df$Off_Crisis == 0, "balance_of_payment"]
##       n missing  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95
##      10       0      10       1  -4.774  -5.219  -5.043  -4.982  -4.724  -4.595  -4.429  -4.347
##
## -5.39478302143074 (1, 10%), -5.00363594891363 (1, 10%), -4.99047879387293 (1, 10%), -4.95508109661503 (1, 10%), -4.76966304348196 (1, 10%), -4.67746343562751 (1, 10%), -4.65984348113626 (1, 10%), -4.57356788939893 (1, 10%), -4.44780713171369 (1, 10%), -4.26423116226702 (1, 10%)
describe(df[df$Off_Crisis>=1&df$Off_Crisis<=n,'balance_of_payment']);
## df[df$Off_Crisis >= 1 & df$Off_Crisis <= n, "balance_of_payment"]
##       n missing  unique    Info    Mean
##       8       0       8       1  -3.186
##
## -4.16876100605885 (1, 12%), -3.93929212154225 (1, 12%), -3.85149697413106 (1, 12%), -3.78116310320806 (1, 12%), -2.94440583734139 (1, 12%), -2.65153490367274 (1, 12%), -2.20060024283928 (1, 12%), -1.949917420894 (1, 12%)

该解决方案首先计算危机生效期间的索引范围作为 crisisRange。然后它向 data.frame 追加一个新列 Off_Crisis,它捕获该行距危机的季度偏移量,之前使用负数,之后使用正数,并假设每一行正好代表一个季度。

然后可以通过对 Off_Crisis 列进行子集化来进行 describe() 调用,从您希望每次调用的危机中获取四分之一的偏移量。


编辑:哇!那很艰难。很确定我明白了:

library('Hmisc');
set.seed(1);
N <- 60;
df <- data.frame(balance_of_payment=rep(-5+2*seq(-1.5,1.5,len=N/2)^2,2)+rnorm(N,0,0.2), Crisis_IMF=c(rep(0,N/6),rep(1,N/6),rep(0,N/3),rep(1,N/6),rep(0,N/6)) );
df;
##    balance_of_payment Crisis_IMF
## 1          -0.6252908          0
## 2          -1.0625579          0
## 3          -1.8228927          0
## 4          -1.8503850          0
## 5          -2.5744076          0
## 6          -3.2324647          0
## 7          -3.3561408          0
## 8          -3.6484112          0
## 9          -3.9805631          0
## 10         -4.4136342          0
## 11         -4.2642312          1
## 12         -4.6598435          1
## 13         -4.9904788          1
## 14         -5.3947830          1
## 15         -4.7696630          1
## 16         -5.0036359          1
## 17         -4.9550811          1
## 18         -4.6774634          1
## 19         -4.5735679          1
## 20         -4.4478071          1
## 21         -4.1687610          0
## 22         -3.9392921          0
## 23         -3.7811631          0
## 24         -3.8514970          0
## 25         -2.9444058          0
## 26         -2.6515349          0
## 27         -2.2006002          0
## 28         -1.9499174          0
## 29         -1.1949166          0
## 30         -0.4164117          0
## 31         -0.2282641          0
## 32         -1.1198441          0
## 33         -1.5782326          0
## 34         -2.1802021          0
## 35         -2.9157211          0
## 36         -3.1513699          0
## 37         -3.5324846          0
## 38         -3.8079388          0
## 39         -3.8757143          0
## 40         -4.1999213          0
## 41         -4.5994921          1
## 42         -4.7884845          1
## 43         -4.7268380          1
## 44         -4.8405104          1
## 45         -5.1324004          1
## 46         -5.1361483          1
## 47         -4.8789267          1
## 48         -4.7125241          1
## 49         -4.7602814          1
## 50         -4.3903659          1
## 51         -4.2729353          0
## 52         -4.2181247          0
## 53         -3.7278522          0
## 54         -3.6794993          0
## 55         -2.7817662          0
## 56         -2.2442292          0
## 57         -2.2428854          0
## 58         -1.8645939          0
## 59         -0.9853426          0
## 60         -0.5270109          0
df$Off_Crisis <- ifelse(df$Crisis_IMF==1,0,with(rle(df$Crisis_IMF),{ mids <- lengths[-c(1,length(lengths))]; c(-lengths[1]:-1,sequence(mids)-rep(rbind(0,mids+1),rbind(ceiling(mids/2),floor(mids/2))),1:lengths[length(lengths)]); }));
df;
##    balance_of_payment Crisis_IMF Off_Crisis
## 1          -0.6252908          0        -10
## 2          -1.0625579          0         -9
## 3          -1.8228927          0         -8
## 4          -1.8503850          0         -7
## 5          -2.5744076          0         -6
## 6          -3.2324647          0         -5
## 7          -3.3561408          0         -4
## 8          -3.6484112          0         -3
## 9          -3.9805631          0         -2
## 10         -4.4136342          0         -1
## 11         -4.2642312          1          0
## 12         -4.6598435          1          0
## 13         -4.9904788          1          0
## 14         -5.3947830          1          0
## 15         -4.7696630          1          0
## 16         -5.0036359          1          0
## 17         -4.9550811          1          0
## 18         -4.6774634          1          0
## 19         -4.5735679          1          0
## 20         -4.4478071          1          0
## 21         -4.1687610          0          1
## 22         -3.9392921          0          2
## 23         -3.7811631          0          3
## 24         -3.8514970          0          4
## 25         -2.9444058          0          5
## 26         -2.6515349          0          6
## 27         -2.2006002          0          7
## 28         -1.9499174          0          8
## 29         -1.1949166          0          9
## 30         -0.4164117          0         10
## 31         -0.2282641          0        -10
## 32         -1.1198441          0         -9
## 33         -1.5782326          0         -8
## 34         -2.1802021          0         -7
## 35         -2.9157211          0         -6
## 36         -3.1513699          0         -5
## 37         -3.5324846          0         -4
## 38         -3.8079388          0         -3
## 39         -3.8757143          0         -2
## 40         -4.1999213          0         -1
## 41         -4.5994921          1          0
## 42         -4.7884845          1          0
## 43         -4.7268380          1          0
## 44         -4.8405104          1          0
## 45         -5.1324004          1          0
## 46         -5.1361483          1          0
## 47         -4.8789267          1          0
## 48         -4.7125241          1          0
## 49         -4.7602814          1          0
## 50         -4.3903659          1          0
## 51         -4.2729353          0          1
## 52         -4.2181247          0          2
## 53         -3.7278522          0          3
## 54         -3.6794993          0          4
## 55         -2.7817662          0          5
## 56         -2.2442292          0          6
## 57         -2.2428854          0          7
## 58         -1.8645939          0          8
## 59         -0.9853426          0          9
## 60         -0.5270109          0         10
n <- 8;
describe(df[df$Off_Crisis>=-n&df$Off_Crisis<=-1,'balance_of_payment']);
## df[df$Off_Crisis >= -n & df$Off_Crisis <= -1, "balance_of_payment"]
##       n missing  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95
##      16       0      16       1  -3.133  -4.253  -4.090  -3.825  -3.294  -2.476  -1.837  -1.762
##
## -4.41363415781177 (1, 6%), -4.19992133068899 (1, 6%), -3.98056311135777 (1, 6%), -3.87571430729169 (1, 6%), -3.80793877922333 (1, 6%), -3.64841115885525 (1, 6%)
## -3.53248462570045 (1, 6%), -3.35614082447269 (1, 6%), -3.23246466374394 (1, 6%), -3.15136989958027 (1, 6%), -2.91572106713267 (1, 6%), -2.57440760140387 (1, 6%)
## -2.1802021496148 (1, 6%), -1.85038498107066 (1, 6%), -1.82289266659616 (1, 6%), -1.57823262180228 (1, 6%)
describe(df[df$Off_Crisis==0,'balance_of_payment']);
## df[df$Off_Crisis == 0, "balance_of_payment"]
##       n missing  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95
##      20       0      20       1  -4.785  -5.149  -5.133  -4.964  -4.765  -4.645  -4.442  -4.384
##
## lowest : -5.395 -5.136 -5.132 -5.004 -4.990, highest: -4.599 -4.574 -4.448 -4.390 -4.264
describe(df[df$Off_Crisis>=1&df$Off_Crisis<=n,'balance_of_payment']);
## df[df$Off_Crisis >= 1 & df$Off_Crisis <= n, "balance_of_payment"]
##       n missing  unique    Info    Mean     .05     .10     .25     .50     .75     .90     .95
##      16       0      16       1  -3.157  -4.232  -4.193  -3.873  -3.312  -2.244  -2.075  -1.929
##
## -4.27293530430708 (1, 6%), -4.21812466033862 (1, 6%), -4.16876100605885 (1, 6%), -3.93929212154225 (1, 6%), -3.85149697413106 (1, 6%), -3.78116310320806 (1, 6%)
## -3.72785216159621 (1, 6%), -3.67949925417454 (1, 6%), -2.94440583734139 (1, 6%), -2.78176624658013 (1, 6%), -2.65153490367274 (1, 6%), -2.24422917606577 (1, 6%)
## -2.24288543679152 (1, 6%), -2.20060024283928 (1, 6%), -1.949917420894 (1, 6%), -1.86459386937746 (1, 6%)

对于这个演示,我综合了五个时期:10 行非危机、10 行危机(第一)、20 行非危机、10 行危机(第二)和 10 行非危机.算法是相同的,即计算一个 Off_Crisis 列(这次要困难得多!),然后使用它为每个 describe() 打电话。只是现在,来自不同危机的数据点将合并到子集中。

关于r - 选择特定数字后的 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680420/

相关文章:

sql - 选择除顶行之外的所有行

r - 如何对结果进行分组,并将每组的计数写入 R 中的矩阵?

list - SwiftUI Mac OS 如何将选择添加到 ListView

css - 更改整个页面的选择颜色

javascript - 将选择设置为节点的边缘会使 WebKit 报告不一致的范围

c# - 如何将多维 (2D) 数组按行分成多个一维数组?

HTML/CSS 隐藏表行(不工作)

r - 从嵌套列表中按名称提取元素

r - 在受版本控制的Docker镜像中进行开发

r - 用重复点绘制数据