使用标准评估更改 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# 中的方法更改另一个范围内的变量值

从活动中更改片段的变量值

如何更改内部类中的变量值[closed]

在本机 C++ 中将变量从 C# 编组为 void*,并在本机程序内更改 Managed/C# 中的变量值

JavaScript,当变量作为参数传递时更改函数内部的变量值[重复]

R中的标准评估和非标准评估