簡體   English   中英

如何將列名傳遞給在 R 中使用摘要的函數

[英]How to Pass a Column Name into a function that uses summary in R

我想知道如何編寫一個函數來總結基於函數參數的值。

這是我想編寫的函數:

iris %>% 
  group_by(Species) %>% 
  summarize(mean = mean(Petal.Length))

find_mean <- function(search_term){
  iris %>% 
    group_by(Species) %>% 
    summarize(mean = mean(search_term))
}

find_mean("Petal.Length")

謝謝!

使用get

find_mean <- function(search_term){
  iris %>% 
    group_by(Species) %>% 
    summarize(mean = mean(get(search_term)))
}

... 或者您可以使用 bang-bang 運算符!!as.name() ,正如我在這篇文章中學到的那樣。

find_mean <- function(search_term){
  iris |>  
    dplyr::group_by(Species) |>  
    dplyr::summarize(mean = mean(!!as.name(search_term)))
}

find_mean("Petal.Length")
#> # A tibble: 3 × 2
#>   Species     mean
#>   <fct>      <dbl>
#> 1 setosa      1.46
#> 2 versicolor  4.26
#> 3 virginica   5.55

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM