相关疑难解决方法(0)

如何在dplyr中将列名作为参数传递给函数?

我想在这里做同样的事情,但是使用dplyr和另外一列.

我想通过字符串变量选择一个列,但最重要的是我还想通常选择第二列.我需要这个,因为我有一个函数,它通过给定的参数选择几列.

我有以下代码作为示例:

library(dplyr)
data(cars)

x <- "speed"
cars %>% select_(x, dist)
Run Code Online (Sandbox Code Playgroud)

r parameter-passing named quote dplyr

10
推荐指数
1
解决办法
4416
查看次数

R lazyeval:将参数传递给 dplyr::filter

我认为这个问题有多种其他变化(例如:herehere ,也许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)

parameters r filter dplyr lazyeval

3
推荐指数
1
解决办法
1640
查看次数

标签 统计

dplyr ×2

r ×2

filter ×1

lazyeval ×1

named ×1

parameter-passing ×1

parameters ×1

quote ×1