我希望有人能帮助确定为什么我收到错误消息时,使用懒惰的评估作为一个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)