【发布时间】:2019-07-30 13:20:36
【问题描述】:
对于以下场景,我得到一个空数据框
D = data.frame(X = c("x1", "x2", "x3"))
vals = c("x1", "x2")
col = "X"
dplyr::filter(D, col %in% vals)
但是按照以下方式进行操作
dplyr::filter(D, X %in% vals)
我无法硬编码列名或过滤值。我需要第一个场景才能工作。
【问题讨论】:
-
@tmfmnk 问题略有不同,在这个问题中,我们试图过滤多个值的行。但是这两个问题中的解决方案都应该通过使用
==或%in%更改过滤来工作? -
当然,它正在工作。您可以使用
filter(D, !!as.name(col) %in% vals)或filter(D, UQ(as.name(col)) %in% vals)。