首页 > 解决方案 > 如何使用 srvyr 包中的函数编写一个包含管道的函数?

问题描述

我有一个调查,我试图按年份分组,并计算某些变量的总数。我需要使用不同的变量执行此操作大约 20 次,因此我正在编写一个函数,但即使它在函数之外工作正常,我似乎也无法正常工作。

这工作正常:

 mepsdsgn %>% group_by(YEAR) %>% summarise(tot_pri = survey_total(TOTPRV)) %>% select(YEAR, tot_pri)

当我尝试一个功能时:

total_calc <- function(x) {mepsdsgn %>% group_by(YEAR) %>% summarise(total = survey_total(x)) %>% select(YEAR, total)}

total_calc(TOTPRV)

我收到此错误:stop_for_factor(x) 中的错误:找不到对象“TOTPRV”

标签: rpipe

解决方案


弄清楚了:

total_fun <- function(x) { col = x mepsdsgn %>% group_by(YEAR) %>% summarise(total =survey_total(!!sym(col), na.rm = TRUE)) %>% select(YEAR, total ) }


推荐阅读