是否有人根据第二个值的最大值从数据框中选择了唯一值?
示例:
name value
cheese 15
pepperoni 12
cheese 9
tomato 4
cheese 3
tomato 2
我想出的最好方法-我确信有更好的方法-是按值降序对df进行排序,提取df $ name,在其上运行unique(),然后与dplyr进行左连接。
理想的结果是:
name value
cheese 15
pepperoni 12
tomato 4
谢谢!
答案 0 :(得分:4)
看到期望的结果,对于每个name
,您正在寻找编号最大的行。下面是实现此任务的一种方法。
library(dplyr)
group_by(mydf, name) %>%
slice(which.max(value))
# A tibble: 3 x 2
# Groups: name [3]
# name value
# <fct> <int>
#1 cheese 15
#2 pepperoni 12
#3 tomato 4
数据
mydf <- structure(list(name = structure(c(1L, 2L, 1L, 3L, 1L, 3L), .Label = c("cheese",
"pepperoni", "tomato"), class = "factor"), value = c(15L, 12L,
9L, 4L, 3L, 2L)), class = "data.frame", row.names = c(NA, -6L
))