У меня есть данные, упорядоченные в хронологическом порядке возрастания. Это валютные пары, связанные с ценами. Мне нужно создать новый столбец "MtM", который будет равен цене, когда валютная пара XAU / USD. Однако, когда валютная пара отличается от XAU / USD, тогда MtM должен быть равен последней предыдущей цене, в которой валютная пара была равна XAU / USD.
Я пытался отстать, cusum, mutate, но я могу решить только тот случай, когда есть только одно наблюдение, в котором валюта отличается от XAU / USD. Если есть несколько последовательных строк, когда валюта отличается от XAU / USD, я не могу решить.
Currency <- c("XAU/USD", "XAU/USD", "XAU/GBP","XAU/USD","XAU/EUR","XAU/GBP","XAU/USD")
Price <- c(1297, 1296, 1007, 1295, 1005,1004,1298)
df <- data.frame(Currency, Price)
Мне нужно получить
MtM <- c(1297, 1296, 1296, 1295, 1295,1295,1298)
df <- data.frame(Currency, Price, MtM)