0

这个问题的变体被问了很多,我也读过关于 NSE 的文章。我仍然无法弄清楚这一点。

这很简单:

library(dplyr)
data(cars)

cars %>%
  group_by(speed) %>%
  summarise(d = mean(dist))

现在我想使用变量 x 来传递 dist 列来表示

x <- "dist"

当然这不起作用:

cars %>%
  group_by(speed) %>%
  summarise(d = mean(x))

所以我使用 SE 版本的摘要:

cars %>%
  group_by(speed) %>%
  summarise_(d = mean(x))

好的,不起作用,所以我还必须添加~

cars %>%
  group_by(speed) %>%
  summarise_(d = ~mean(x))

仍然不起作用,但如果使用dist代替x

cars %>%
  group_by(speed) %>%
  summarise_(d = ~mean(dist))

这有效,但不使用 x。

cars %>%
  group_by(speed) %>%
  summarise_(d = ~mean(~x))

这也行不通。

我基本上是在胡闹,不知道如何使它工作,或者它为什么会失败。

4

1 回答 1

2
cars %>%
    group_by(speed) %>%
    summarise_each_(funs(mean), vars(matches(x)))
于 2017-05-25T09:59:57.477 回答