簡體   English   中英

如何在 R function 和 dplyr 的 1 個參數中使用 2 個變量

[英]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.

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