我有一个data.frame
具有不同的观察结果,重复的名称各有不同的值。例如:
Name Value Other_attributes
A 20 BLABLA1
B 40 BLABLA2
A 35 BLABLA3
B 10 BLABLA4
C 80 BLABLA5
我想要一个新的data.frame
,只包含每组最大值的观察结果。
Name Value Other_attributes
B 40 BLABLA2
A 35 BLABLA3
C 80 BLABLA5
我希望已经足够清楚了,非常感谢你。
答案 0 :(得分:4)
使用dplyr
:
假设您的数据框为df
library(dplyr)
df %>% group_by(Name) %>% filter(Value == max(Value)) %>% ungroup
<强> 数据 强>
df <- data.frame(Name = c("A", "B", "A", "B", "C"),
Value=c(20, 40, 35, 10, 80),
Other_attributes=c("BLABLA1", "BLABLA2", "BLABLA3", "BLABLA4", "BLABLA5"))
答案 1 :(得分:2)
使用data.table
。
library(data.table)
setDT(df)[, max(Value), by = Name]