【问题标题】:Rolling Increase based on Category in R基于R中的类别滚动增加
【发布时间】:2022-06-21 23:12:10
【问题描述】:

我有这个包含 3 列的数据框,我需要第 4 列来增加每个基金在每个日期的价值,在这种情况下,只有 2022-01-02 的值才有可能。

Date <- c("2022-01-01","2022-01-01","2022-01-01","2022-01-02","2022-01-02","2022-01-02")
Fund <-c("A","B","C","C","A","B")
Values <- c(10,10,10,13,17,15)

例如,这将是一个结果

Date Fund Value Increase %
2022-01-02 A 17 70%

【问题讨论】:

    标签: r calculation


    【解决方案1】:

    一种方法是在按“基金”分组后取diff,然后除以first

    library(dplyr)
    df1 %>% 
       group_by(Fund) %>% 
       mutate(Prop = 100 * c(0, diff(Values)/first(Values))) %>%
       ungroup
    

    或者可以除以'Values'的lag

    df1 %>%
       group_by(Fund) %>%
       mutate(Prop = 100 * c(0, diff(Values))/lag(Values)) %>%
       ungroup
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2021-08-28
      相关资源
      最近更新 更多