我想通过字符串变量选择一个列,但最重要的是我还想通常选择第二列.我需要这个,因为我有一个函数,它通过给定的参数选择几列.
我有以下代码作为示例:
library(dplyr)
data(cars)
x <- "speed"
cars %>% select_(x, dist)
Run Code Online (Sandbox Code Playgroud) 我认为这个问题有多种其他变化(例如:here,here ,也许here) - 甚至可能是某个地方的答案。
如何为过滤器函数提供参数。
library(dplyr)
library(lazyeval)
set.seed(10)
data <- data.frame(a=sample(1:10, 100, T))
Run Code Online (Sandbox Code Playgroud)
如果我需要计算数字 1 到 10 的出现次数并显示计数,比如 1、2 和 3,我会这样做:
data %>%
group_by(a) %>%
summarise(n = n()) %>%
filter(a < 4)
Run Code Online (Sandbox Code Playgroud)
给出:
# A tibble: 3 × 2
a n
<int> <int>
1 1 11
2 2 8
3 3 16
Run Code Online (Sandbox Code Playgroud)
现在,我怎样才能把它放到一个函数中?这grp
是分组变量。
fun <- function(d, grp, no){
d %>%
group_by_(grp) %>%
summarise_(n = interp(~ n() )) %>%
filter_( grp < no)
# …
Run Code Online (Sandbox Code Playgroud)