r - 如何使用 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”
解决方案
弄清楚了:
total_fun <- function(x) { col = x mepsdsgn %>% group_by(YEAR) %>% summarise(total =survey_total(!!sym(col), na.rm = TRUE)) %>% select(YEAR, total ) }
推荐阅读
- python-3.x - Python“root.after(1000, my_test)”。它每秒循环一次,但两次
- c# - Xamarin.Forms - 视频加载时使 ActivityIndicator 消失
- javascript - 如何在 Electron 中实现与 Node.JS 和 JQuery 函数兼容的多线程?
- javascript - HTML 表单无法使用 jQuery 验证插件进行验证
- python - 从列表中划分字母数字单词并存储为字典的键值对
- c# - MVC 5 控制器返回 PDF 文件不起作用
- c# - Xceed Docx 返回空白文档
- sql - 从多连接中选择具有最新日期的行
- postgresql - PostgreSQL:是否有用于将数据从数据库插入到另一个数据库的查询或脚本?
- python - python - 如何在列表中循环更多倍于python中的列表大小?