[英]How to use 2 variables in 1 argument in a R function with dplyr
我想在 R 中創建一個 function ,這將允許根據放入我的 ZC1C425268E68385D1AB5074C17A94F14 的單個參數中的 2 個變量對數據幀進行分組。
我的例子:
library(dplyr)
myfunction <- function(vars=NULL) {
starwars %>%
group_by(!!sym(vars)) %>%
summarise(stat=mean(height,na.rm=T))
}
# It works
myfunction(vars="gender")
# It doesn't work
myfunction(vars=c("gender","sex"))
提前謝謝了 !
對於多個 arguments 您可以使用syms
with !!!
:
library(dplyr)
library(rlang)
myfunction <- function(vars=NULL) {
starwars %>%
group_by(!!!syms(vars)) %>%
summarise(stat=mean(height,na.rm=T))
}
但是,cross 接受字符串across
因此您可以在沒有任何 NSE 的情況下執行此操作:
myfunction <- function(vars=NULL) {
starwars %>%
group_by(across(all_of(vars))) %>%
summarise(stat=mean(height,na.rm=T))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.