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