gpt4 book ai didi

R - 如何折叠数据框的行,为每个唯一 id 取每列的最大值

转载 作者:行者123 更新时间:2023-12-04 11:49:43 24 4
gpt4 key购买 nike

我拥有的是一个大型数据框,其中大多数唯一 ID 都是一行;但是,由于多个二进制诊断,有些行具有重复的 ID。我想要的是将每个重复的 id 折叠成一个 id 并取每列的最大值。非重复行将保持不变。

假设我有这个 df

df <- data.frame(id = c("1", "1", "2", "3", "4", "5", "6", "6"),
age = c(50, 50, 45, 35, 75, 37, 33, 33),
weight = c(75, 75, 80, 100, 82, 90, 71, 71),
diagnosis1 = c(1, 0, 0, 1, 0, 0, 1, 0),
diagnosis2 = c(0, 0, 0, 0, 1, 0, 0, 1),
diagnosis3 = c(0, 1, 1, 0, 0, 0, 0, 0))

id age weight diagnosis1 diagnosis2 diagnosis3
1 1 50 75 1 0 0
2 1 50 75 0 0 1
3 2 45 80 0 0 1
4 3 35 100 1 0 0
5 4 75 82 0 1 0
6 5 37 90 0 0 0
7 6 33 71 1 0 0
8 6 33 71 0 1 0

我希望达到这个输出:
> df

id age weight diagnosis1 diagnosis2 diagnosis3
1 1 50 75 1 0 1
2 2 45 80 0 0 1
3 3 35 100 1 0 0
4 4 75 82 0 1 0
5 5 37 90 0 0 0
6 6 33 71 1 1 0

最佳答案

您可以使用 dplyrgroup_bysummarize_all

library(dplyr)
df %>% group_by(id) %>% summarize_all(max)

此代码将查看 id 的每个唯一值并为所有其他列取最大值。

关于R - 如何折叠数据框的行,为每个唯一 id 取每列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59074051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com