У меня есть следующий DF, где я хотел бы наложить значения в TEST для RANK == 2 со следующей логикой.
? = MIN ((GROUP_VALUE - TEST [VALUE OF RANK = 1]), GROUP_VALUE / POINT)
country GROUP_VALUE RANK POINT TEST
1 USA 2000 1 2.5 1500
2 USA 2000 2 2.5 **?**
3 UK 1000 1 2.5 1000
4 JPN 3000 1 3.5 1000
5 JPN 3000 2 3.5 **?**
Ожидаемый результат:
country GROUP_VALUE RANK POINT TEST
1 USA 2000 1 2.5 1500
2 USA 2000 2 2.5 *500*
3 UK 1000 1 2.5 1000
4 JPN 3000 1 3.5 1000
5 JPN 3000 2 3.5 *857.15*
Я пытался использовать следующий код, но не смог получить ожидаемый результат.
df$test = ifelse(df$rank == 2, min((df$GROUP_VALUE / df$point), df$group_value - lag(df$test), 0)