【发布时间】:2017-12-28 21:42:03
【问题描述】:
使用 dplyr 函数过滤、分组和变异数据的函数。基本管道序列在函数之外非常有用,这就是我使用真实列名的地方。将它放在一个函数中,其中列名是一个变量,并且一些函数可以工作,但有些不能,尤其是 dplyr::filter()。例如:
var1 <- c('yes', NA, NA, 'yes', 'yes', NA, NA, NA, 'yes', NA, 'no', 'no', 'no', 'maybe', NA, 'maybe', 'maybe', 'maybe')
var2 <- c(1:18)
df <- data.frame(var1, var2)
这很好用(即过滤 NA):
df%>%filter(!is.na(var1))
...但这不是:
x <- "var1"
df%>%filter(!is.na(x))
...但确实如此:
df%>%select(x)
需要专门过滤掉的是NA。
试过get("x"),不行,切片:
df[!is.na(x),]
...也不好。
关于如何传递变量以在函数内部(或外部)进行过滤以及为什么变量与其他 dplyr 函数一起使用的任何想法?
【问题讨论】: