如何使用magrittr的正向管道操作符将“.”解释为变量而不是占位符

如何使用magrittr的正向管道操作符将“.”解释为变量而不是占位符,r,dplyr,magrittr,R,Dplyr,Magrittr,我想为下面的嵌套函数调用创建一个magrittr管道链 产生完全相同的输出 下面返回一个数据帧,其中包含“我的名字”和“频率”列 正在添加%>%dplyr::重命名名称=。不起作用,因为。被解释为占位符 而不是列名称 为了产生与嵌套函数调用中相同的输出,我需要使用一个额外的函数调用:test_df%来解释。作为变量名而不是后续调用中的占位符?注释中@aosmith@建议的解决方案仅在几天内有效 dplyr的最新开发版本0.4还生成了一个数据帧。专栏: 这已经非常非常晚了,但是您可以使用带有下划线

我想为下面的嵌套函数调用创建一个magrittr管道链 产生完全相同的输出

下面返回一个数据帧,其中包含“我的名字”和“频率”列

正在添加%>%dplyr::重命名名称=。不起作用,因为。被解释为占位符 而不是列名称


为了产生与嵌套函数调用中相同的输出,我需要使用一个额外的函数调用:test_df%来解释。作为变量名而不是后续调用中的占位符?

注释中@aosmith@建议的解决方案仅在几天内有效

dplyr的最新开发版本0.4还生成了一个数据帧。专栏:


这已经非常非常晚了,但是您可以使用带有下划线和字符串的重命名版本。。这避免了非标准的评估,因此可以在%>%的范围内工作


我使用管道得到的列名与使用dplyr开发版本嵌套得到的列名相同。@aosmith谢谢!使用dplyr 0.3.0.9和lazyeval 0.1.9.9001的最新开发版本时,管道链会产生与嵌套函数调用相同的结果。
my_names <- c('John', 'Joe', 'Jane', 'John', 'John', 'Jane')

test_df <- as.data.frame.table(sort(table(my_names), decreasing = TRUE))

   my_names Freq
1     John    3
2     Jane    2
3      Joe    1
library(magrittr)

test_df <- my_names %>% table %>% sort(decreasing = TRUE) %>% as.data.frame.table 

   . Freq
1 John    3
2 Jane    2
3  Joe    1
devtools::install_github("hadley/lazyeval")
devtools::install_github("hadley/dplyr")
library(dplyr)

my_names <- c('John', 'Joe', 'Jane', 'John', 'John', 'Jane')

my_names %>% table %>% sort(decreasing = TRUE) %>% as.data.frame.table

. Freq
1 John    3
2 Jane    2
3  Joe    1
my_names %>% table %>% sort(decreasing = TRUE) %>% as.data.frame.table %>%
  setNames(c('my_names', 'Freq'))
test_df <- my_names %>% table %>% sort(decreasing = TRUE) %>% as.data.frame.table %>%
    rename_(my_names=".")

#  my_names Freq
#1     John    3
#2     Jane    2
#3      Joe    1