2015-06-06 4 views
3

Я работаю с 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 

Я хочу создать сводную статистику с describe(dataset) из Hmisc пакета.

мне нужно различать timespans п четвертей прежде, чем это Crisis_IMF1, время, в котором Crisis_IMF равен 1, а состояние п-quaters после Crisis_IMF является 1. Чтобы выбрать время, в которое Crisis_IMF is 1, я сделал describe(dataset[dataset$Crisis_IMF==1,"balance_of_payment"]).

Но я не знаю, как выполнить команду в течение периода времени n-кварталов (например, 8) после события.

Edit:

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 

Edit2; дополнительная информация о наборе данных:

   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 to 1991-04-01 and 2002-01-01 to 2005-01-01. Я хочу создать 3 разных команды describe, которые показывают поведение переменной в вышеупомянутых состояниях.

+0

Вместо публикации только одной переменной лучше включить 'dput' (часть) ваших данных. – Jaap

ответ

3

Вы не указали свои полные данные, поэтому я должен угадать, что столбец Crisis_IMF имеет непрерывную последовательность нулей (до кризиса), за которой следует непрерывная последовательность единиц (в течение которой кризис МВФ считался быть в силе), наконец, последовала непрерывная последовательность нулей (после кризиса).

Ниже я обобщил свои собственные данные для тестирования. Я только синтезировал столбцы Crisis_IMF и balance_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, который фиксирует, сколько кварталов смещено от кризиса, строка, используя отрицательные числа для предыдущих и положительных чисел для after, и предполагая, что каждая строка представляет собой ровно одну четверть.

Звонки describe() могут быть сделаны путем подмножества в столбце Off_Crisis, получая только кварталы, смещенные от кризиса, который вы хотите для каждого вызова.


Edit: Уф! Это было тяжело. Довольно, что я получил его, хотя:

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 (что было намного сложнее на этот раз!), А затем использовать его для подмножества data.frame для каждого вызова describe().Только сейчас в подмножествах будут объединены точки данных из разных кризисов.

+0

Решение - именно то, что я ищу. Но в вопросе я не был достаточно уверенным. Я добавил столбец из фрейма данных. Можно ли разобраться в каждом периоде кризиса отдельно? –

+0

@ René Мне нужно знать, почему в данных есть разные кризисные периоды. Являются ли данные сгруппированными по «Стране», и существует один кризисный период на «Страну»? Или может быть несколько периодов кризиса, которые не различаются ни одним столбцом группировки внутри data.frame? Вы хотите, чтобы три 'описания()' вызывали каждый кризисный период (один для 'n' кварталов раньше, один для во время и один для' n' кварталов после)? – bgoldst

+0

@ René Становится яснее, но у меня все еще есть вопрос: хотите ли вы всего три 'describe()' calls * в общей сложности *, то есть в основном вы будете агрегировать все докризисные периоды для одного вызова, кризисные периоды для второго вызова и агрегирование всех послекризисных периодов для третьего звонка? Или вы хотите, чтобы три 'описания()' вызывали каждый кризисный период, то есть, если в ваших данных всего 20 кризисных периодов, тогда вам нужно всего 60 вызовов 'describe()'? – bgoldst

Смежные вопросы