如何通过将观测值除以滞后值来创建新变量?

时间:2019-03-14 09:51:58

标签: r dplyr lag

我的数据集包含每年的频率。现在,我想将每个频率除以上一年相同变量的频率。我创建了一个滞后函数,并收到错误消息“无法将quosures对象转换为函数”。但是,我想不出另一种实现方式。

简化后,我的数据集可以表示如下:

library(tidyverse)
library(dplyr)

    year <- c(1914, 1915, 1916, 1917)
    a <- c("blue", "green", "green", "blue")
    df_1 <- data.frame(a, year)
    df_1 <- group_by(a, year) %>% count(name = "counts") %>% 
            ungroup(a, year) %>% 
            mutate(y=counts/sum(counts))

我的代码如下:

calc_persistance = function(y){y/lag(y)}
df_1 %>% 
mutate_if(vars(contains("y")), calc_persistance)

0 个答案:

没有答案