好吧,所以我在这里读了很多文章,我感到有些尴尬,因为我以为我了解基本的dplyr
功能。
我无法group_by
来分组,我很困惑。
我有数据帧test
。我只想按变量ID
分组,然后计算每组两个变量之间的相关性。
我不知道发生了什么,因为它没有分组,当我应该有127个分组和127个相关性时,仅输出1个相关性。为什么?
test
的样子:
我写的是
library(dplyr)
library(magrittr)
test%>%
mutate(ID=as.character(ID))%>%
group_by(ID)%$%
cor(sulfate,nitrate,use="complete.obs")
我得到的是:[1] 0.0568084
。
答案 0 :(得分:8)
我认为博览会管道%$%
不会随意提供dplyr
的{{1}}语义。我没有查看源代码,而是在思考它,期望您的代码返回什么?一个具有127个相关值的向量?您甚至无法知道哪个ID来自哪个ID。我建议您在可能的情况下坚持在group_by
和mutate
内包装操作,我认为这是预期的用法。请注意,这提供了与summarise
相同的优点,避免了必须指定数据帧上下文(即,可以只写%$%
而不是mpg
)。在这里我不会使用mtcars$mpg
,因为没有必要(您的输出将是矢量,并且不会像模型那样具有更多奇特的东西)。
使用下面的内置do
数据集的示例。
如果需要相关向量,则在此操作之后很容易提取。
mtcars
由reprex package(v0.2.0)于2018-07-13创建。