R 使用带有整齐选择的符号列表

R 使用带有整齐选择的符号列表,r,tidyverse,tidyeval,R,Tidyverse,Tidyeval,在我们的数据聚合管道中,我们有一组用于定义组的条件变量。为了提高代码的可读性和可维护性,我们使用了一个预配置的符号列表,并根据下面的示例片段进行了整齐的评估: #这是我们的条件变量列表 条件变量%group by(!!!条件变量)%>%Summary(…) 这很好用,但我不知道在上下文中使用它的优雅方式是什么,例如,对于nest之类的东西。问题是新的nest()需要类似nest(data=c(var1,var2,var3))而不是nest(var1,var2,var3),因此nest(!!!c

在我们的数据聚合管道中,我们有一组用于定义组的条件变量。为了提高代码的可读性和可维护性,我们使用了一个预配置的符号列表,并根据下面的示例片段进行了整齐的评估:

#这是我们的条件变量列表
条件变量%group by(!!!条件变量)%>%Summary(…)
这很好用,但我不知道在
上下文中使用它的优雅方式是什么,例如,对于
nest
之类的东西。问题是新的
nest()
需要类似
nest(data=c(var1,var2,var3))
而不是
nest(var1,var2,var3)
,因此
nest(!!!condition_vars)
会给我一个警告

我能想出的最好办法就是

df您可以执行
nest(df,data=c(!!!vars))

但是现在,如果表达式是简单的列名,我会将它们存储在字符向量中。您可以在选择上下文中为字符向量提供
all_of()
。在动作动词如
mutate()
groupby()
中,使用
cross()
创建一个选择上下文,您可以在其中使用
all\u of()

cols%分组依据(所有cols))
mtcars%>%嵌套(数据=所有列)

谢谢你,莱昂内尔,这正是我要找的!我同意字符向量会使选择更加方便,但我们必须进行一些自定义值扩展,使用整洁的扩展和元编程,API会更方便。。。
cols <- c("cyl", "am")

mtcars %>% group_by(across(all_of(cols))
mtcars %>% nest(data = all_of(cols))