r - 具有多列的数据框,从一列中的一组相同值中选择另一列中的最大值
问题描述
我有以下数据框:
DF <- data.frame(A=c(0.1,0.1,0.1,0.1,0.2,0.2,0.2,0.3,0.4,0.4 ), B=c(1,2,1,5,10,2,3,1,6,2), B=c(1000,50,400,6,300,2000,20,30,40,50))
我想为 A 中的每组相等值过滤 DF 选择 B 中的最大值。
例如,对于 A 中的 0.1,B 中的最大值为 5。
以新数据框结束:
A B C
0.1 5 6
0.2 10 300
0.3 1 30
0.4 6 40
我不确定这是否是使用基本 R 或库来解决的问题。因为我正在考虑使用 dplyr 和 A 组。我是对的吗?
解决方案
where group by 'A'的选项data.table
,获取 'B' 所在的索引max
with which.max
,换.I
行以返回行索引。如果我们不指定或重命名,默认情况下,它返回为 'V1' 列,我们将其提取为向量以子集数据集的行
library(data.table)
setDT(DF)[DF[, .I[which.max(B)], A]$V1]
-输出
# A B B.1
#1: 0.1 5 6
#2: 0.2 10 300
#3: 0.3 1 30
#4: 0.4 6 40
推荐阅读
- python - 如何加快或完善 Google cloud-ndb 库中的上下文管理?
- xcode - SwiftUI 按钮的可触摸区域
- sql - 如何在 T-sql 中使用 sys.Table 中的名称来重新设置标识列
- javascript - 轮播箭头也会更改 div react.js 中的文本
- python - 为什么“或”操作会改变行为而不是两个单独的条件调用?
- pygame - Pygame 平滑运动
- typescript - TypeScript 为 Object 定义键和值可能与歧视联合
- laravel - 如何在laravel路由中处理可变数量的参数到控制器
- php - 如何在 Windows 10 上制作 PHP CLI 脚本“呼吁关注”?
- c# - 类不能用作 MigrateDatabaseToLatestVersion 的参数