为了账号安全,请及时绑定邮箱和手机立即绑定

dplyr中的标准评估:总结以字符串形式给出的变量

dplyr中的标准评估:总结以字符串形式给出的变量

慕田峪9158850 2019-09-21 14:02:25
我想在中引用一个未知的列名summarise。引入的标准评估函数dplyr 0.3允许使用变量来引用列名,但是当您base在内调用R函数时,这似乎不起作用summarise。library(dplyr)key <- "v3"val <- "v2"drp <- "v1"df <- data_frame(v1 = 1:5, v2 = 6:10, v3 = c(rep("A", 3), rep("B", 2)))df看起来像这样:> dfSource: local data frame [5 x 3]  v1 v2 v31  1  6  A2  2  7  A3  3  8  A4  4  9  B5  5 10  B我想删除v1,按v3分组,并对每个组求和v2:df %>% select(-matches(drp)) %>% group_by_(key) %>% summarise_(sum(val, na.rm = TRUE))Error in sum(val, na.rm = TRUE) : invalid 'type' (character) of argumentNSE版本的select()工作正常,因为它可以匹配字符串。SE版本的group_by()工作正常,因为它现在可以接受变量作为参数并对其求值。但是,在函数内部使用基本R函数时,我还没有找到获得类似结果的dplyr方法。无效的事情:df %>% group_by_(key) %>% summarise_(sum(get(val), na.rm = TRUE))Error in get(val) : object 'v2' not founddf %>% group_by_(key) %>% summarise_(sum(eval(as.symbol(val)), na.rm = TRUE))Error in eval(expr, envir, enclos) : object 'v2' not found我已经检查了几个 相关的 问题,但是到目前为止,没有一个建议的解决方案对我有用。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信