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))