r - 在 R 中查找具有标头要求和 mutate() 挑战的行的最大值
问题描述
我有一个小标题(见下文),其中包括许多股票(SPY、GLD 等)的十二个月回报,以及十二个月旁边的回报。我想从行(t-1)中取不同十二个月之间的最大值,然后对于具有该值的股票,将其返回到行(t)中名为“Strat return”的单独列中,然后发布另一列中的股票名称以及行 (t) 中的“Stratticker”。
我试过运行 if_else 和 case_when 参数。当我尝试这样做时,我很难找到 tibble 最终为空的最大值。此外,如果我想添加一些,我不知道有什么方法可以使它可扩展以包含许多不同的股票。我也使用 lag(SPY_twelve_mon_ret) 来查找行 (t-1) 并且效果很好。
# Input
# A tibble: 6 x 8
# Groups: mom_asset [1]
mom_asset date spy_return spy_twelve_mon tbill_twelve_mon GLD_return GLD_twelve_mon bond_return
<chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 SPY 2005-11-30 0.0440 0.0819 0.0826 0.0582 0.0882 0.00374
2 SPY 2005-12-31 -0.00190 0.0483 0.0861 0.0505 0.178 0.0114
3 SPY 2006-01-31 0.0240 0.0981 0.0308 0.0993 0.343 -0.000596
4 SPY 2006-02-28 0.00573 0.0817 0.0580 -0.0111 0.288 0.00161
5 SPY 2006-03-31 0.0165 0.120 0.0140 0.0362 0.357 -0.00868
6 SPY 2006-04-30 0.0126 0.156 -0.0507 0.120 0.501 -0.00149
# Output
# A tibble: 6 x 8
# Groups: mom_asset [1]
mom_asset date spy_return spy_twelve_mon_ret tbill_twelve_mon_ret GLD_return GLD_twelve_mon_ret bond_return strat_returns strat_label
<chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
2 SPY 2005-12-31 -0.00190 0.0483 0.0861 0.0505 0.178 0.0114 0.0114 BOND
3 SPY 2006-01-31 0.0240 0.0981 0.0308 0.0993 0.343 -0.000596 -0.000596 BOND
4 SPY 2006-02-28 0.00573 0.0817 0.0580 -0.0111 0.288 0.00161 0.00161 BOND
5 SPY 2006-03-31 0.0165 0.120 0.0140 0.0362 0.357 -0.00868 -0.00868 BOND
6 SPY 2006-04-30 0.0126 0.156 -0.0507 0.120 0.501 -0.00149 -0.00149 BOND
解决方案
推荐阅读
- c++ - 如何在不知道服务/端口的情况下让 ASIO 解析 IP 地址?
- docker - 使用特定配置(yaml)文件在后台运行 DockerCompose 文件
- swagger - 使用 .net5.0 获取带有 swagger 的 api 以使用 IdentityServer4 进行身份验证的问题
- python - 在基于 MultiIndex 的数据框中获取内部级别的前 N 个值
- system-verilog - 为什么 'd0 不扩展信号的整个宽度(就像 '0 一样)?
- python - 如何在同一类中的另一种方法中的一种方法中调用变量?
- openssl - BOX 集成:解密私钥
- php - WordPress ; get_userdata 在此页面上不起作用
- java - Java 中的神经网络无法反向传播
- html - 如何在各自的位置对齐两个浮动右键