我正在尝试在dplyr中编写一个小的top_n_by函数。
topNby = function(df, dim, byDim, n) {
return( group_by(df, as.symbol(dim)) %>%
summarise(topDim = sum(byDim)) %>%
arrange(desc(topDim)) %>%
slice(1:n) %>%
.[[dim]] %>% as.character()
)
}
但group_by
会抛出错误:
Error in mutate_impl(.data, dots) : object 'yourDim' not found
我也试过没有as.symbol
但没有成功。当您希望能够动态设置分组列时,使用group_by
的正确方法是什么。
(我很确定这必须在其他地方得到解答,但找不到令人满意的答案......)