group_by dplyr未分组

时间:2018-07-13 19:29:39

标签: r dplyr

好吧,所以我在这里读了很多文章,我感到有些尴尬,因为我以为我了解基本的dplyr功能。

我无法group_by来分组,我很困惑。

我有数据帧test。我只想按变量ID分组,然后计算每组两个变量之间的相关性。

我不知道发生了什么,因为它没有分组,当我应该有127个分组和127个相关性时,仅输出1个相关性。为什么?

test的样子:

enter image description here

我写的是

library(dplyr)
library(magrittr)
test%>%
  mutate(ID=as.character(ID))%>%
  group_by(ID)%$%
  cor(sulfate,nitrate,use="complete.obs")

我得到的是:[1] 0.0568084

1 个答案:

答案 0 :(得分:8)

我认为博览会管道%$%不会随意提供dplyr的{​​{1}}语义。我没有查看源代码,而是在思考它,期望您的代码返回什么?一个具有127个相关值的向量?您甚至无法知道哪个ID来自哪个ID。我建议您在可能的情况下坚持在group_bymutate内包装操作,我认为这是预期的用法。请注意,这提供了与summarise相同的优点,避免了必须指定数据帧上下文(即,可以只写%$%而不是mpg)。在这里我不会使用mtcars$mpg,因为没有必要(您的输出将是矢量,并且不会像模型那样具有更多奇特的东西)。

使用下面的内置do数据集的示例。

如果需要相关向量,则在此操作之后很容易提取。

mtcars

reprex package(v0.2.0)于2018-07-13创建。