首页 > 解决方案 > 在 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

标签: rmaxtibble

解决方案


推荐阅读