R 使用'nest'引用公式中的变量_`

R 使用'nest'引用公式中的变量_`,r,tidyr,tidyverse,R,Tidyr,Tidyverse,我正在使用tidyverse函数的escape hatch版本与formula接口,当嵌套函数涉及“-”时,我遇到了一些问题 虽然这一块有效: select_(mtcars, ~ -cyl) 类似的东西对nest不起作用_ x[[i]]中的错误在您给出的示例中,您确实不需要标准的eval SE版本;您可以使用nest而不使用~: 图书馆三年 mtcars%>%nest cyl >一个tibble:3x2 >共青团数据 > > 1 6 > 2

我正在使用tidyverse函数的escape hatch版本与formula接口,当嵌套函数涉及“-”时,我遇到了一些问题

虽然这一块有效:

select_(mtcars, ~ -cyl)
类似的东西对nest不起作用_


x[[i]]中的错误在您给出的示例中,您确实不需要标准的eval SE版本;您可以使用nest而不使用~:

图书馆三年 mtcars%>%nest cyl >一个tibble:3x2 >共青团数据 > > 1 6 > 2 4 > 3 8 但是,如果您的实际案例更为复杂,并且确实需要SE,请注意tidyverse正在切换到基于NSE的系统,因此*uu版本将被弃用,转而支持以下内容:

mtcars%>%nest-!!兰格::库塞尔 >一个tibble:3x2 >共青团数据 > > 1 6 > 2 4 > 3 8 或者用绳子

mtcars%>%nest-!!兰格::sym'cyl' >一个tibble:3x2 >共青团数据 > > 1 6 > 2 4 > 3 8 如果您从GitHub安装tidyr,这两种方法都可以使用。如果您真的想让旧样式发挥作用,您可以让它等效地发挥作用,如下所示:

mtcars%>%nest_'data',名称。[名称!='cyl'] >一个tibble:3x2 >共青团数据 > > 1 6 > 2 4 > 3 8
如果您使用的是不带引号的变量名,那么首先就没有理由使用SE版本;省略~。此外,TydVIEW正处于切换到基于SE的系统中,它将是MTCAS %%%Nest!quocyl或带有字符串的mtcars%>%nest-!!rlang::sym'cyl.@alistaire我将此用于广泛的项目,而不是交互式会话。据我所知,在这种情况下,使用SE应该更好。我错了吗?只有在编写代码时无法控制输入的情况下才需要SE,就像闪亮站点的用户可以选择分组变量一样。即使如此,通常只将需要它的功能更改为SE;如果变量是固定的,那就没有意义了。如果你需要的话,这在很大程度上有助于理解新系统是如何工作的。
nest_(mtcars, ~ -cyl)