сгенерируйте последовательность с единицей меньше 1, используя для l oop в r - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь сгенерировать последовательность с единицей измерения меньше 1, но мне не удалось получить правильный номер для последовательности. Воспроизводимый код выглядит так, как показано ниже:

> stock=3 # initial value
> inflow=0.4
> outflow=0.25
> unit=1/8
> stock=stock+(inflow-outflow)*stock
> for (i in seq(1,10,by=unit)) stock[i+1]=stock[i]+(inflow-outflow)*stock[i]
> stock
 [1]  3.450000  3.967500  4.562625  5.247019  6.034072  6.939182  7.980060  9.177069 10.553629
[10] 12.136673 13.957174
> length(stock)
[1] 11
> seq(1,10,by=unit)
 [1]  1.000  1.125  1.250  1.375  1.500  1.625  1.750  1.875  2.000  2.125  2.250  2.375  2.500  2.625
[15]  2.750  2.875  3.000  3.125  3.250  3.375  3.500  3.625  3.750  3.875  4.000  4.125  4.250  4.375
[29]  4.500  4.625  4.750  4.875  5.000  5.125  5.250  5.375  5.500  5.625  5.750  5.875  6.000  6.125
[43]  6.250  6.375  6.500  6.625  6.750  6.875  7.000  7.125  7.250  7.375  7.500  7.625  7.750  7.875
[57]  8.000  8.125  8.250  8.375  8.500  8.625  8.750  8.875  9.000  9.125  9.250  9.375  9.500  9.625
[71]  9.750  9.875 10.000
> length(seq(1,10,by=unit))
[1] 73

Ожидаемый результат акции должен иметь длину 73, такую ​​же, как длина последовательности. Числа теперь у меня 3,450000 3,967500 4,562625 ... 13,957174 правильные, но не полные, после числа 13,957174 должно быть еще 62 значения. Любая идея? Большое спасибо.

1 Ответ

1 голос
/ 10 июля 2020

Возможно, вы ищете что-то вроде этого:

stock=3 
inflow=0.4
outflow=0.25
unit=1/8
len <- seq(1,10,by=unit)
for (i in seq_along(len[-1])) stock[i+1]=stock[i]+(inflow-outflow)*stock[i]
stock

# [1]     3.00     3.45     3.97     4.56     5.25     6.03     6.94
# [8]     7.98     9.18    10.55    12.14    13.96    16.05    18.46
#[15]    21.23    24.41    28.07    32.28    37.13    42.70    49.10
#[22]    56.46    64.93    74.67    85.88    98.76   113.57   130.61
#[29]   150.20   172.73   198.64   228.43   262.70   302.10   347.41
#[36]   399.53   459.46   528.37   607.63   698.77   803.59   924.13
#[43]  1062.75  1222.16  1405.49  1616.31  1858.75  2137.57  2458.20
#[50]  2826.93  3250.97  3738.62  4299.41  4944.32  5685.97  6538.87
#[57]  7519.70  8647.65  9944.80 11436.52 13152.00 15124.80 17393.52
#[64] 20002.54 23002.92 26453.36 30421.37 34984.57 40232.26 46267.10
#[71] 53207.16 61188.23 70366.47
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...