如何使 Tidyverse 中的自定义函数更具可读性?

Mig*_*use 2 r tidyverse

我有一个data.frame不同的变量,需要summarised使用不同的度量。

我正在寻找一个易于阅读的等价物,

baseline_table <- function(data,var) {
        
        data %>% 
                group_by(Species) %>% 
                summarise(
                        !!sym(paste(var, "_mean", sep = "")) := !!sym(var) %>% mean(na.rm = TRUE),
                        !!sym(paste(var, "_sd", sep = ""))   := !!sym(var) %>% sd(na.rm = TRUE)
                )
        
}

iris %>% 
        baseline_table(var = "Sepal.Length")
Run Code Online (Sandbox Code Playgroud)

Ser*_*kan 5

您可以使用glue语法使其更具可读性。

baseline_table <- function(data, var) {
        
        data %>% 
                group_by(Species) %>% 
                summarise(
                        "{{var}}_mean" := mean({{ var }}, na.rm = TRUE),
                        "{{var}}_sd"   := sd({{ var }}, na.rm = TRUE)
                )
        
}

iris %>% 
        baseline_table(var = Sepal.Length)
Run Code Online (Sandbox Code Playgroud)