У меня есть фрейм данных, который содержит упорядоченный список значений (var1) для каждой страны на дату. Там, где есть NA, я хотел бы заполнить NA путем умножения значения в столбце множителя на предыдущее значение. В конечном итоге это будет увеличение по сравнению с предыдущим значением по множителю.
Существующий фрейм данных
df <- data.frame(Date = seq(ymd("2020-01-01",tz= Sys.timezone()),ymd("2020-01-05",tz= Sys.timezone()),86400),
Country=c(rep("USA",5),rep("INDIA",5),rep("POLAND",5),rep("SWITZERLAND",5)),
var1= c(20:21,rep(NA,3))
,multiplier= c(rep(1.1,5),rep(1.2,5),rep(1.5,5),rep(1.1,5)))
df
Date Country var1 multiplier
1 2020-01-01 USA 20 1.1
2 2020-01-02 USA 21 1.1
3 2020-01-03 USA NA 1.1
4 2020-01-04 USA NA 1.1
5 2020-01-05 USA NA 1.1
6 2020-01-01 INDIA 20 1.2
7 2020-01-02 INDIA 21 1.2
8 2020-01-03 INDIA NA 1.2
9 2020-01-04 INDIA NA 1.2
10 2020-01-05 INDIA NA 1.2
11 2020-01-01 POLAND 20 1.5
12 2020-01-02 POLAND 21 1.5
13 2020-01-03 POLAND NA 1.5
14 2020-01-04 POLAND NA 1.5
15 2020-01-05 POLAND NA 1.5
16 2020-01-01 SWITZERLAND 20 1.1
17 2020-01-02 SWITZERLAND 21 1.1
18 2020-01-03 SWITZERLAND NA 1.1
19 2020-01-04 SWITZERLAND NA 1.1
20 2020-01-05 SWITZERLAND NA 1.1
Ожидаемый результат Ожидаемый результат должен иметь NA в var1, заполненные произведением значения множителя и предыдущего значения. Например, значение var1 для США 3 января будет 21 * 1,1 = 23,1
#After manipulation I should get the following
df
Date Country var1 multiplier
1 1-Jan USA 20.000 1.1
2 2-Jan USA 21.000 1.1
3 3-Jan USA 23.100 1.1
4 4-Jan USA 25.410 1.1
5 5-Jan USA 27.951 1.1
6 1-Jan INDIA 20.000 1.2
7 2-Jan INDIA 21.000 1.2
8 3-Jan INDIA 25.200 1.2
9 4-Jan INDIA 30.240 1.2
10 5-Jan INDIA 36.288 1.2
11 1-Jan POLAND 20.000 1.5
12 2-Jan POLAND 21.000 1.5
13 3-Jan POLAND 31.500 1.5
14 4-Jan POLAND 47.250 1.5
15 5-Jan POLAND 70.875 1.5
16 1-Jan SWITZERLAND 20.000 1.1
17 2-Jan SWITZERLAND 21.000 1.1
18 3-Jan SWITZERLAND 23.100 1.1
19 4-Jan SWITZERLAND 25.410 1.1
20 5-Jan SWITZERLAND 27.951 1.1
Спасибо за ваш ответ заранее