我想根据向量iris
的值,使用%in%
运算符过滤fl <- c("virginica","setosa")
。
我换句话说,就像
tbl_df(iris) %>%
filter_('Species %in% c("virginica","setosa")')
但由于此代码将放入闪亮的应用中并且动态生成fl
,因此我需要将fl
传递到我之前的脚本中,而不是手动输入值。
答案 0 :(得分:0)
(编辑:我根据评论取消删除此操作,当从SQL中提取时,您必须使用filter_
功能,否则它会中断。\ n&#39;一个单独的问题,也许是你的代码中的一个错误,但也许这种解决方法让你完成所需的工作。@ alistaire的评论效果更好,但如果你需要像我一样动态选择一个列最初错误推断,那么你需要这样的东西。缺乏这个,这不是一个扩展的答案。)
如下所示:https://stackoverflow.com/a/26509961/3358272,而不是%in%
:
cn <- "Species"
fl <- c("virginica", "setosa")
filt <- lazyeval::interp(~ col %in% fl, col = as.name(cn))
tbl_df(iris) %>% filter_(filt)
# Source: local data frame [100 x 5]
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# <dbl> <dbl> <dbl> <dbl> <fctr>
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
# 3 4.7 3.2 1.3 0.2 setosa
# 4 4.6 3.1 1.5 0.2 setosa
# 5 5.0 3.6 1.4 0.2 setosa
# .. ... ... ... ... ...