r - 自定义函数中的 dplyr group_by 问题;与tidyeval有关吗?
问题描述
我正在尝试编写一个函数来制作一个长的三向列联表,使用 group_by 并从 dplyr 进行汇总。我从一个包含 3 个因子变量的小标题开始:年份、乳房 X 线照片和 sp。
> c_table_fn <- function(x){
+ factors %>%
+ group_by(year,mammogram,x) %>%
+ summarize(n = n())}
>
> c_table_fn(sp)
Error: Must group by variables found in `.data`.
* Column `x` is not found
我的函数给了我上述错误。但是,当我不在函数中运行相同的代码时,它运行良好并且我得到了所需的表。
> factors %>%
+ group_by(year,mammogram,sp) %>%
+ summarize(n = n())
`summarise()` has grouped output by 'year', 'mammogram'. You can override using the `.groups` argument.
我认为这是由于整洁评估的问题。我尝试按照 dplyr 编程小插图中的建议将函数中的 x 更改为 {{x}} 以及 .data[[x]] ,但这没有帮助。
解决方案
我们可以用{{}}
c_table_fn <- function(x){
factors %>%
group_by(year,mammogram,{{x}}) %>%
summarize(n = n())
}
-测试
c_table_fn(sp)
推荐阅读
- opengl - GLSL - 使用等角投影绘制图像
- excel - 如何解决 Excel sumproduct 公式以从工作日期中获取周数
- java - LeapMotion - GestureList 始终为空。我想识别手势但我不能
- javascript - AngularJs Factory 不更新值
- keras - 为什么模型的训练精度在一定数量的 epoch 内增长非常缓慢(几乎保持稳定)?
- php - 将 Woocommerce 格式的产品价格添加到主题的产品导航中
- prometheus - Kubernetes cadvisor 端点未被普罗米修斯抓取
- android - 如何将内容包装在 android 的 AutoCompleteTextView 中
- mysql - 用 CAST 选择:成功;使用 CAST 更新:失败
- nginx - 如何阻止 Nginx 充当显式代理?