r - 在R中将行合并为一个
问题描述
我有一个如下所示的数据框:
ID Name m1 m2 m3 m4 m5 m6 m7 m8
37 Grötlingbo Roes II 0 0 0 0 1 0 0 0
37 Grötlingbo Roes II 0 1 0 0 0 0 0 0
37 Grötlingbo Roes II 0 0 1 0 0 0 0 0
123 Hablingbo Havor III 0 0 0 0 0 0 0 0
123 Hablingbo Havor III 0 0 0 0 0 0 1 0
38 Hablingbo Havor I 0 0 1 0 0 0 0 0
38 Hablingbo Havor I 0 0 0 0 0 0 0 0
38 Hablingbo Havor I 0 0 0 0 0 0 0 0
38 Hablingbo Havor I 0 0 0 1 0 0 0 0
38 Hablingbo Havor I 0 1 0 0 0 1 0 0
我需要将具有相同名称的行及其在 m1 到 m8 列中的观察结果合并为一行。只有行名称相同,但观察结果不同。我知道观察结果不会发生冲突,因为我之前已经在整理数据框了。由于我不想添加新列,因此不能使用pivot_wider。而且我相信unite函数仅用于合并列,而不是行。我觉得可以用group_by完成,但不知道我需要添加什么。我已经在这里阅读了很多条目,但还没有找到我的问题的答案。有没有人有办法解决吗?
解决方案
尝试以下summarize(across())
方法:
library(dplyr)
df %>%
group_by(ID, Name) %>%
summarize(across(starts_with("M"), sum))
`summarise()` regrouping output by 'ID' (override with `.groups` argument)
# A tibble: 3 x 10
# Groups: ID [3]
ID Name m1 m2 m3 m4 m5 m6 m7 m8
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 37 "Grötlingbo Roes II" 0 1 1 0 1 0 0 0
2 38 "Hablingbo Havor I" 0 1 1 1 0 1 0 0
3 123 "Hablingbo Havor III" 0 0 0 0 0 0 1 0
推荐阅读
- python - ipywidgets.embed 缺少依赖项?在venv中运行时出现关键错误
- algorithm - 多个圆形成的相交区域数
- node.js - Node.js - 当我知道数据在那里@我正在使用的 URL 时,为什么我的 HTTP GET 请求返回 404
- bash - 是否有标准位置默认为 Ubuntu Linux 中的所有用户设置 PAGER 环境变量?
- python - Keras ImageDataGenerator 饱和 16 位图像
- regex - 以角度获取 url 中所有辅助路由的名称
- javascript - 如何使用上传的文件?
- vba - 访问 VBA DMin 多个条件,类型不匹配错误
- linq - 如何将 StartsWith 与字符串数组一起使用?
- html - 为什么除非分配了一个类,否则之前的伪选择器不能正常工作?