r - 根据排序值选择数据框中的唯一值
问题描述
有没有人根据第二个值的最大值从数据框中选择唯一值?
例子:
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
提前致谢!
解决方案
看到您的预期结果,对于每个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
))
推荐阅读
- qt - Qml 组件未在 xcb 平台上正确加载
- antlr - 如何在 ANTLR 中启用 orExpression 和 andExpression 规则的组合?
- r - 即使 R 中缺少分类值,也从多个数据帧创建一行
- php - Yii2:如何自定义重置密码表单(查看)
- python - 如何在moviepy中使用base64编码的图像
- networking - 在主机和来宾 VMWare 之间建立直接网络
- javascript - 如何从javascript中的函数退出?
- lua - 如何在 Wireshark Lua 解析器中使用 add_packet_field?
- java - Hibernate Spring:spring.jpa.hibernate.ddl-auto 属性不创建生成表不起作用
- java - Open Api Generator 插件不适用于 Maven