按组选择最大行值

2023-12-09

我一直在尝试通过查看其他帖子来处理我的数据,但我不断收到错误。我的数据new看起来像这样:

id  year    name    gdp
1   1980    Jamie   45
1   1981    Jamie   60
1   1982    Jamie   70
2   1990    Kate    40
2   1991    Kate    25
2   1992    Kate    67
3   1994    Joe     35
3   1995    Joe     78
3   1996    Joe     90

我想按 id 选择年份值最高的行。所以想要的输出是:

id  year    name    gdp
1   1982    Jamie   70
2   1992    Kate    67
3   1996    Joe     90

From 选择包含 R 中每日最大值的行我尝试了以下方法但没有成功

ddply(new,~id,function(x){x[which.max(new$year),]})

我也尝试过

tapply(new$year, new$id, max)

但这并没有给我想要的输出。

任何建议都会很有帮助!


对于大型表来说,另一个可以很好扩展的选项是使用data.table.

DT <- read.table(text = "id  year    name    gdp
                          1   1980    Jamie   45
                          1   1981    Jamie   60
                          1   1982    Jamie   70
                          2   1990    Kate    40
                          2   1991    Kate    25
                          2   1992    Kate    67
                          3   1994    Joe     35
                          3   1995    Joe     78
                          3   1996    Joe     90",
                 header = TRUE)

require("data.table")
DT <- as.data.table(DT)

setkey(DT,id,year)
res = DT[,j=list(year=year[which.max(gdp)]),by=id]
res

setkey(res,id,year)
DT[res]
# id year  name gdp
# 1:  1 1982 Jamie  70
# 2:  2 1992  Kate  67
# 3:  3 1996   Joe  90
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按组选择最大行值 的相关文章

随机推荐

  • 正则表达式如何匹配所有标点符号但排除某些条件

    我可以用 p Punct 匹配所有标点符号 包括下划线 我想要exclude所有撇号都严格在单词内 为此我正在使用 lt a zA Z a zA Z 但是 我无法让它们一起工作来严格匹配单词内除撇号之外的所有标点符号 我应该用什么 例子 m
  • 测试套件 python - webdriver

    我是 python 新手 我正在尝试创建自己的测试套件 主要目的是在不同的浏览器上执行相同的测试 这就是我使用变量 browser 的原因 它在测试中用于调用 webdriver 我有这个 def test 01 自身 浏览器 def te
  • 无法连接来自基类的信号

    当我尝试连接 BASE 类信号时 Qt 告诉我 DERIVED 类上不存在该信号 这是为什么 我如何告诉 connect 使用 BASE 类 namespace MyNamespace void register Derived deriv
  • 如何在现代 SharePoint Online 页面中的 Webchat 通道上启用语音功能?

    我制作了一个具有语音功能的聊天机器人 我在模拟器中进行了测试 效果很好 但是 部署后 我注意到网络聊天频道没有启用它 我将网络聊天嵌入到现代 SharePoint Online 网站中 根据我在 Internet 上搜索的内容 大多数答案都
  • Matlab Euler 显式 ode 求解器具有自适应步骤,有没有办法使代码更快?

    我正在尝试找到一种方法来使此代码更快 Nagumo1 是计算时间 t 时的二阶导数值的函数 function x nagumo t y f Iapp f t e 0 1 F 2 1 exp 5 y 1 n0 0 x zeros 2 1 z
  • 使用 DataContext 静态变量

    我最近继承了一个使用 Linq2SQL 的 ASP Net 应用程序 目前 它在每个页面中都将其 DataContext 对象声明为静态 并且我在第一次发现它们为 null 单例 有点 时创建它们 我需要评论这是好还是坏 在我只需要从数据库
  • 无法立即在 Npgsql 中接收多个通知

    今天 我编写了以下代码 可与名为 Npgsql 的 PostgreSQL C 库配合使用 using System using System Collections Generic using System Linq using Syste
  • C 编程中堆栈溢出的含义[重复]

    这个问题在这里已经有答案了 下面是代码 include
  • 如何判断 JS Windows8 Metro 应用程序是否可见

    我正在尝试创建一个应用程序 它在可见时执行一些工作 并在它消失时执行其他工作 这通常是通过页面可见性 api http css dzone com articles using html5s pagevisibility 完成的 但 Win
  • iOS - 从 ViewController 调用 App Delegate 方法

    我想做的是单击一个按钮 在代码中创建 并让它调用一个不同的视图控制器 然后让它在新的视图控制器中运行一个函数 我知道在IB中这可以相对容易地完成 但这不是一个选择 我想做的一个例子是 如果您有两个视图控制器 其中一个带有房屋的启动屏幕 另一
  • 在java中读取文件时忽略一行

    我有一些代码来从文件中读取行 我想识别行何时开始或第一个字符 非空白 是 并忽略它 所以在 while 语句中添加类似的内容 if line 0 ignore that line 我有类似的东西 input new BufferedRead
  • 比较两个模式并使用新模式的新列更新旧模式

    我有一个具有两种模式的 Oracle 数据库 一个是旧的 另一个是新的 我想用新模式的新列更新旧模式 我通过以下查询得到了发生更改的表 select distinct table name from select table name co
  • JAX-RS 2 过滤器的范围有哪些?

    我使用的是 RestEasy 3 0 2 它是第一个 JAX RS 2 实现之一 并在 Tomcat 7 中运行我的应用程序 我还通过 WELD 在我的应用程序中使用注入 WELD 通过其 CDI 适配器与 RestEasy 集成 到目前为
  • cout 或 printf 两者中哪一个具有更快的 C++ 执行速度?

    我已经用 C 编写代码很长时间了 我一直想知道哪个执行速度更快printf or cout 情况 我正在用 C 设计一个应用程序 并且有一定的限制 例如执行时间限制 我的应用程序已在控制台上加载打印命令 那么哪一个更可取printf or
  • 在 Python 中以非常高的质量保存图像

    如何以极高的质量保存 Python 绘图 也就是说 当我不断放大PDF文件中保存的对象时 为什么没有任何模糊现象 另外 保存它的最佳模式是什么 png eps 或者其他的 我做不到pdf 因为有一个隐藏的数字发生了混乱Latexmk汇编 如
  • Python:加权变异系数

    我怎样才能计算加权变异系数 CV 在 Python 中的 NumPy 数组上 为此 可以使用任何流行的第三方 Python 包 我可以使用以下方法计算简历scipy stats variation 但它没有加权 import numpy a
  • 将标题添加到多个文本文件中[重复]

    这个问题在这里已经有答案了 可能的重复 Sed Awk 在文件中搜索和替换 插入文本 我想知道如何将一个 标题 行添加到一个目录中包含的多个文本文件中 Bash 命令行会很棒 Thx EDIT 我在这里找到了我的需求 http perldo
  • 四舍五入到小数点后两位[重复]

    这个问题在这里已经有答案了 可能的重复 将双精度数舍入为小数点后 2 位有效数字 I have mkm amountdrug fluidvol 1000 60 infrate ptwt 在我的Java代码中 该代码工作正常 但返回几个小数位
  • 使用 bash 将字符串转换为数组,并尊重分组的引号[重复]

    这个问题在这里已经有答案了 我有一个字符串 Str This string has a substring 该字符串有逗号 所以如果我打印我看到的字符串 echo Str This string has a substring 如果我输入命
  • 按组选择最大行值

    我一直在尝试通过查看其他帖子来处理我的数据 但我不断收到错误 我的数据new看起来像这样 id year name gdp 1 1980 Jamie 45 1 1981 Jamie 60 1 1982 Jamie 70 2 1990 Kat