我的数据集包含每年的频率。现在,我想将每个频率除以上一年相同变量的频率。我创建了一个滞后函数,并收到错误消息“无法将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)