相关疑难解决方法(0)

卷曲Tidy评估和修改输入或其名称

本文阐述了一种新的卷曲卷曲整洁评价方法。给出了几个示例,说明了这种风格的非标准评估(NSE)的使用。

library(tidyverse)

# Example 1 --------------------------
max_by <- function(data, var, by) {
  data %>%
    group_by({{ by }}) %>%
    summarise(maximum = max({{ var }}, na.rm = TRUE))
}
starwars %>% max_by(height)
starwars %>% max_by(height, by = gender)

# Example 2 --------------------------
summarise_by <- function(data, ..., by) {
  data %>%
    group_by({{ by }}) %>%
    summarise(...)
}

starwars %>%
  summarise_by(average = mean(height, na.rm = TRUE),
               maximum = max(height, na.rm = TRUE),
               by = gender)
Run Code Online (Sandbox Code Playgroud)

我创建了一些自己的函数,实际上这是一个更容易开发的框架,而不用担心所有的夸张和爆炸。

但是,同一篇文章说明我们还没有完全走出困境:

当您需要以某种方式修改输入或输入名称时,只需要使用引号和取消引号(带有复数形式的enquos()和!!!)。

...,但未提供示例。不抱怨,只是问是否有人可以填补空白并提供示例。由于我对Tidy的评估不流利,所以我真的不明白作者对那句话的理解(对不起)

r non-standard-evaluation tidyeval rlang

5
推荐指数
1
解决办法
330
查看次数

标签 统计

non-standard-evaluation ×1

r ×1

rlang ×1

tidyeval ×1