本文阐述了一种新的卷曲卷曲整洁评价方法。给出了几个示例,说明了这种风格的非标准评估(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的评估不流利,所以我真的不明白作者对那句话的理解(对不起)。