在R NSE中使用带空参数的quos

在R NSE中使用带空参数的quos,r,dplyr,rlang,nse,R,Dplyr,Rlang,Nse,我正在尝试找出如何在我的tidyverse工作流中的NSE函数中使用可选参数。这是一个小玩具的功能,我想能够建立在。我希望能够对分组数据帧进行操作;在本例中,我想收集df,不包括df分组所依据的任何列(通过组(df))成功获取这些列)以及通过…进入的任何其他可选列quos有一个参数。忽略\u empty,但我不确定如何准确地使用它。我可能误解了.ignore\u empty的作用 我知道我可以通过检查缺少的参数来启动函数,然后设置两组不同的管道操作来确定是否有额外的参数,但我更喜欢将其保存在单个

我正在尝试找出如何在我的
tidyverse
工作流中的NSE函数中使用可选参数。这是一个小玩具的功能,我想能够建立在。我希望能够对分组数据帧进行操作;在本例中,我想收集df,不包括df分组所依据的任何列(通过
组(df)
)成功获取这些列)以及通过
进入的任何其他可选列
quos
有一个参数
。忽略\u empty
,但我不确定如何准确地使用它。我可能误解了
.ignore\u empty
的作用

我知道我可以通过检查缺少的参数来启动函数,然后设置两组不同的管道操作来确定是否有额外的参数,但我更喜欢将其保存在单个管道流中

数据和玩具功能:

库(tidyverse)
df%
总目()
#>#tibble:6 x 4
#>#组别:城镇[4]
#>城镇区域变量值
#>                   
#>1东港湾内环亚洲1123
#>2 Hamden内圈亚洲3285
#>3纽黑文纽黑文亚洲6042
#>4西港湾内环亚洲2214
#>5东港内环黑色693
#>6 Hamden内圈黑色13209
使用分组df,但未进入

df%>%
选择(-region)%>%
组别(城市)%>%
测试点()
#>-x中出错:一元运算符的参数无效
由(v0.2.0)于2018年5月10日创建


提前谢谢

我认为问题在于你试图否定一个空向量。如果您确定始终至少有一个分组或聚集变量,那么您可以这样做

test_dots <- function(df, ...) {
  grouping_vars <- groups(df)
  gather_vars <- quos(...)
  vars <- quos(c(!!!grouping_vars), c(!!!gather_vars))

  df %>%
    gather(key = variable, value = value, -c(!!!vars))
}

test\u dots非常好,谢谢!我想我是在假设
.ignore\u empty
被翻译成比它更强大的东西