gpt4 book ai didi

r - 基于条件的滞后数据(非固定滞后)

转载 作者:行者123 更新时间:2023-12-01 09:07:32 24 4
gpt4 key购买 nike

我有按时间升序排列的数据。这些是与价格相关的货币对。我需要创建一个新的“MtM”列,当货币对为 XAU/USD 时,该列将等于价格。但是,只要货币对不同于 XAU/USD,则 MtM 需要等于货币对等于 XAU/USD 的最后一个价格。

我尝试过滞后、累积和、变异,但我只能解决只有一个观察结果表明货币不同于 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)

最佳答案

这是使用 dplyrtidyr 的方法 -

df %>% 
mutate(
MtM = ifelse(Currency == "XAU/USD", Price, NA_real_)
) %>%
fill(MtM)

Currency Price MtM
1 XAU/USD 1297 1297
2 XAU/USD 1296 1296
3 XAU/GBP 1007 1296
4 XAU/USD 1295 1295
5 XAU/EUR 1005 1295
6 XAU/GBP 1004 1295
7 XAU/USD 1298 1298

关于r - 基于条件的滞后数据(非固定滞后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56153092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com