r - group_by dplyr 没有分组
问题描述
好的,所以我在这里阅读了很多帖子,我有点尴尬,因为我以为我理解了基本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
。
解决方案
我不认为博览会管道%$%
会免费提供dplyr
语义group_by
。我没有查看源代码,只是想了一下,您的代码会返回什么?具有 127 个相关值的向量?您甚至无法知道哪个来自哪个 ID。我建议您尽可能在内部包装操作mutate
,summarise
我认为这是预期的用途。请注意,这提供了相同的优点,%$%
即避免必须指定数据帧上下文(即可以只写mpg
而不是mtcars$mpg
)。我不会do
在这里使用,因为没有必要(你的输出将是向量,而不是像模型这样更奇特的东西)。
使用下面的内置mtcars
数据集的示例。
如果您需要相关向量,则在此操作后很容易提取。
library(dplyr)
mtcars %>%
group_by(gear) %>%
summarise(cor = cor(mpg, hp))
#> # A tibble: 3 x 2
#> gear cor
#> <dbl> <dbl>
#> 1 3 -0.739
#> 2 4 -0.879
#> 3 5 -0.900
由reprex 包(v0.2.0)于 2018 年 7 月 13 日创建。
推荐阅读
- visual-studio-code - 当我在 VScode 中使用 Shift + Alt + UpArrow 或 DownArrow 时,它会进入多光标模式
- c# - 如何在 .net 项目中使用 MS Word 的 Dictate?
- javascript - 上传前附加多个文件并从附加文件中删除文件
- rabbitmq - 当作为 Celery 代理的 RabbitMQ 内存不足时,我应该得到哪个异常?
- ruby-on-rails - Cocoon Gem 两次渲染表单
- javascript - onclick 函数在 JavaScript 中不起作用
- python - 如何在kivy中将游戏球添加到网格布局中
- rust - Rust Diesel Abstract 更新函数
- wavesurfer.js - 如何使用 wavesurfer 仅在波形上绘制区域?
- laravel - 如何在laravel API的get方法中获取url路径中的数组参数