用于非标准评估 (NSE) 的 R dplyr 过滤器"缺少 .dots,没有默认值"



我希望有人能帮助确定为什么我收到错误消息时,使用懒惰的评估作为一个dplyr过滤器_动词的一部分。最终目标是使用函数通过引用传递参数,但我已经将问题缩小到函数之外。

library(dplyr)
library(lazyeval)
library(data.table)
data_raw_dt <- data.table(
  R_dates = seq(from = as.Date("2015/8/31"), by = "1 day", length.out = 30),
  grp_region = sample(letters[1:4], 30, replace = TRUE),
  z_valuation = rnorm(30)
)
# Create some NAs
data_raw_dt$grp_region[data_raw_dt$grp_region == "d"] <- NA
dates = "R_dates"
group = "grp_region"
column = "z_valuation"
filter_criteria = interp(~(!is.na(var)), var = as.name(group))
data_raw_dt %>%
  filter_(filter_criteria)

但是这会给出以下错误信息:" lazyeval::common_env(.dots)错误:论点"。缺少"Dots",没有默认的"

"

在这种情况下,我不确定如何指定.dots,当我这样做时,它要求一个列表。我检查了这里,这里和这里,并按照这些示例构建了我的代码,但没有成功。

包版本:dplyr 0.4.2lazyeval 0.1.10数据表1.9.4

有人有什么想法吗?提前谢谢你!

filter_(.dots = filter_criteria)

最新更新