使用标准评估更改 dplyr::count 中的变量名称
Posted
技术标签:
【中文标题】使用标准评估更改 dplyr::count 中的变量名称【英文标题】:Change variable name in dplyr::count using standard evaluation 【发布时间】:2015-07-07 13:07:50 【问题描述】:当dplyr::count_
以标准评估方式使用时,如何更改分组变量的名称
例如,如果在最后的 tbl 中我不想要 var 名称“Species”而是“Type”:
iris %>%
group_by("Species") %>%
count_("Species")
Source: local data frame [3 x 2]
Species n
1 setosa 50
2 versicolor 50
3 virginica 50
我还想知道dplyr::count_
是如何工作的以及这个表达式应该做什么?你有解释吗?
> iris %>% group_by("Species") %>% count_("x = Species")
Source: local data frame [3 x 2]
x = Species n
1 setosa 50
2 versicolor 50
3 virginica 50
谢谢!
【问题讨论】:
顺便说一句,您不需要 group_by。这就是计数的意义。 是的,我刚刚意识到,阅读 ?count 帮助。谢谢!iris %>% group_by("Species") %>% count_("x = Species")
看起来像一个错误,不应该在 IMO 工作。如果您第二次运行此行,它也不起作用。另外,您有什么理由使用count_
而不是count
?
是的,你是对的,它并不总是有效。我使用 SE 版本的函数,因为这不是“交互式使用”,我试图将它们包装在我自己的函数中,因此要计数的变量应该作为参数传递。
【参考方案1】:
好吧,我在发帖前使用了setNames
,但使用方式错误。
这似乎是解决方案:
count_(iris, setNames("Species", "type"))
【讨论】:
【参考方案2】:这是一种方法:
iris %>%
rename(Type=Species) %>%
count_("Type")
【讨论】:
以上是关于使用标准评估更改 dplyr::count 中的变量名称的主要内容,如果未能解决你的问题,请参考以下文章
在本机 C++ 中将变量从 C# 编组为 void*,并在本机程序内更改 Managed/C# 中的变量值