我在R中有一个以下形式的数据帧:

> head(data)
  Group Score Info
1     1     1    a
2     1     2    b
3     1     3    c
4     2     4    d
5     2     3    e
6     2     1    f

我想使用max函数将其聚合到Score列之后

> aggregate(data$Score, list(data$Group), max)

  Group.1         x
1       1         3
2       2         4

但我还想显示与每组Score列的最大值相关联的Info列.我不知道该怎么做.我想要的结果是:

  Group.1         x        y
1       1         3        c
2       2         4        d

有什么提示吗?

推荐答案

首先,使用split拆分数据:

split(z,z$Group)

然后,对于每个区块, Select 具有最大分数的行:

lapply(split(z,z$Group),function(chunk) chunk[which.max(chunk$Score),])

最后还原为数据.第do.callrbind帧:

do.call(rbind,lapply(split(z,z$Group),function(chunk) chunk[which.max(chunk$Score),]))

结果:

  Group Score Info
1     1     3    c
2     2     4    d

一行,没有魔法咒语,速度快,结果有好名字=)

R相关问答推荐

在' geom_contour_filled()'中对齐两个gplot的 colored颜色 比例

R -列表元素中所有命名项的总和

在边界外添加注释或标题

使用tidyverse / Mutate的存款账户余额

R Tidymodels textercipes-使用spacyR进行标记化-如何从生成的标记列表中删除标点符号

编辑文件后编辑RhandsonTable

Highcharter多次钻取不起作用,使用不同方法

如何在kableextra调用cell_spec()中忽略NA?

用相同方法得到不同函数的ROC最优截断值

如何直接从Fortran到R的数组大小?

如何在geom_col中反转条

在RStudio中堆叠条形图和折线图

如何将使用rhandsontable呈现的表值格式化为百分比,同时保留并显示完整的小数精度?

基于Key->Value数据帧的基因子集相关性提取

R中Gamma回归模型均方误差的两种计算方法不一致

如何计算每12行的平均数?

长/纬点继续在堪萨斯-SF结束,整齐的人口普查

R:如何在数据集中使用Apply

如何在刻面和翻转堆叠条形图中对齐geom_text()

如何用不同长度的向量填充列表?