从纵向数据中选择最后一个观察值

2023-11-25

我有一个数据集,其中包含每个参与者的多次时间评估。我想为每个参与者选择最后一次评估。我的数据集如下所示:

ID  week  outcome
1   2   14
1   4   28
1   6   42
4   2   14
4   6   46
4   9   64
4   9   71
4  12   85
9   2   14
9   4   28
9   6   51
9   9   66
9  12   84

我只想为每个参与者选择最后一次观察/评估,但我只有周数作为每个参与者的指标。在 R(或 Excel?)中如何做到这一点?

提前致谢,

niki


这是一种 base-R 方法:

do.call("rbind", 
        by(df, INDICES=df$ID, FUN=function(DF) DF[which.max(DF$week), ]))
  ID week outcome
1  1    6      42
4  4   12      85
9  9   12      84

或者,data.table包提供了一种简洁且富有表现力的语言来执行这种类型的数据帧操作:

library(data.table)
dt <- data.table(df, key="ID")

dt[, .SD[which.max(outcome), ], by=ID] 
#      ID week outcome
# [1,]  1    6      42
# [2,]  4   12      85
# [3,]  9   12      84

# Same but much faster. 
# (Actually, only the same as long as there are no ties for max(outcome)..)
dt[ dt[,outcome==max(outcome),by=ID][[2]] ]   # same, but much faster.

# If there are ties for max(outcome), the following will still produce
# the same results as the method using .SD, but will be faster
i1 <- dt[,which.max(outcome), by=ID][[2]]
i2 <- dt[,.N, by=ID][[2]]
dt[i1 + cumsum(i2) - i2,]

最后,这里有一个plyr基于解决方案

library(plyr)

ddply(df, .(ID), function(X) X[which.max(X$week), ])
#   ID week outcome
# 1  1    6      42
# 2  4   12      85
# 3  9   12      84
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从纵向数据中选择最后一个观察值 的相关文章

  • 将强化的 data.frame 转换回 sf 对象

    五十斯塔特包提供了一张很棒的美国地图 其中有夏威夷和阿拉斯加 如下图所示 对象五十 州已经得到加强 可以与 ggplot2 一起使用 但是 我想使用 geom sf 将其绘制为 sf 对象 作为一个更普遍的问题 将强化的 data fram
  • 零膨胀泊松分布的经验和理论分布图

    以下是我正在研究的一种数据集 data lt c 0 1 0 11 2 0 3 0 0 2 1 3 1 0 1 0 0 0 2 3 0 0 0 8 1 1 1 0 1 1 2 7 0 0 0 5 2 3 6 1 1 5 2 9 0 0 1
  • 您使用 Attach() 或按名称或切片调用变量吗?

    许多介绍 R 的书籍和指南都是从附加一个 R 语言的实践开始的 data frame这样您就可以通过名称调用变量 我一直发现用以下方式调用变量是有利的 符号或方括号切片 2 这样我就可以使用多个data frames 而不混淆它们和 或使用
  • ggplot2 的组合图(不在单个图中),使用 par() 或 layout() 函数? [复制]

    这个问题在这里已经有答案了 我一直在考虑使用 par 或 layout 函数来组合 ggplots 可以使用这些功能吗 假设我想绘制 ggplot 散点图和 ggplot 直方图 我想将这两个地块合并起来 而不是在一个地块中 是否适用 我在
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • R:使用 dcast 时包含没有条目的因子

    我在数据帧上使用 reshape2 函数 dcast 其中一个变量是某些级别未出现在数据框中的因素 但我会将所有值包含在创建的新列中 例如 假设我运行以下命令 library reshape2 dataDF lt data frame id
  • 如何规划庭院灯最有效的路线

    我正在尝试挂一些庭院灯 基于另一个问题 https cs stackexchange com questions 80134 christmas light route efficiency我问 我意识到我需要一种算法来解决路由检查问题 h
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 为闪亮的应用程序创建桌面图标

    当我在基本 R 提示中提供以下代码时 我会在浏览器中打开一个闪亮的应用程序 shiny runApp C Myapp 我使用 Windows 7 我试图创建一个桌面图标 以避免我的客户每次想要使用该应用程序时都键入上述代码 我创建了一个桌面
  • corr.test 与 cor.test p 值

    我正在尝试使用 psych 包 psych 1 6 9 中的 corr test 但在使用 method spearman 时 它似乎给出了与 cor test 不同的 p 值 相关系数相同 但 p 值不同 我整理了一些示例代码和输出 如下
  • 将 R 传单地图保存为 html:不包括图块

    我正在尝试使用 saveWidget 或将 rmd 文件输出到 html 来保存 R 传单地图 如下所述 将传单输出保存为 html https stackoverflow com questions 30110377 saving lea
  • Sweave 缓存包

    我正在尝试编写一份报告 我的问题是每次我编译 R 时都会加载我在报告中使用的包 如 ggplot2 MASS cubature 这是非常耗时的 有没有办法查包裹 I found 缓存编织但它不起作用 这是我在 sweave 文件中添加的块
  • 对 R/Sweave 进行编程以获得正确的 \Sexpr 输出

    我在为 Sweave 进行 R 编程时遇到了一些问题 rstats twitter 小组经常指出这里 所以我想我应该把这个问题向大家提出 我是一名分析师 而不是程序员 所以在我的第一篇文章中请放轻松 问题是 我正在使用 R 在 Sweave
  • 是否可以在 R 中创建自定义 pch 形状?

    R 中的许多绘图函数都使用图形参数pch指定数据点的形状 根据R 文档 https www rdocumentation org packages graphics versions 3 6 2 topics points 有 26 个矢量
  • 根据第二个数据帧中的匹配创建新列

    如果有两个数据框 top3df http dpaste com 1709875 and qw qw lt structure list id structure 1 25 Label c w01 w02 w03 w04 w05 w06 w0
  • 整理包中的字段说明

    我很抱歉 因为我知道这个答案可能出现在编写 R 包的手册中 但在我阅读和查看其他包的整理字段时 我无法 100 弄清楚该字段的用途 用简单的语言 我的是英语 来看 包的描述文件中的整理字段有什么作用 人们想在那里放什么 我认为这来自于某个时
  • 如何将变量传递给 ddply 中的自定义函数?

    考虑以下数据 d data frame experiment as factor c foo foo foo bar bar si runif 5 ti runif 5 我想进行相关性测试si and ti 对于每个experiment因素
  • 在 R 中使用 ggplot2 叠加两个图

    有两个数据框 df1 df2我需要使用 ggplot2 创建线图并显示在同一个图表上 df1 x y 2 30 4 25 6 20 8 15 df2 x y 2 12 4 16 6 20 8 24 用于绘制第一个 df p1 lt ggpl
  • 在 R 中高效加载稀疏矩阵

    我在将数据有效加载到 R 中的稀疏矩阵格式时遇到问题 这是我当前策略的 不完整 示例 library Matrix a1 Matrix 0 5000 100000 sparse T for i in 1 5000 a1 i idxOfCol
  • 使用 ggplot2 在一张画布上绘制多个图形[重复]

    这个问题在这里已经有答案了 我正在尝试根据此表将两个 ggplot2 图合并为一个图 Type RatingA RatingB 1 One 3 36 2 Two 5 53 3 One 5 57 4 One 7 74 5 Three 4 38

随机推荐

  • Chrome 和 Firefox 中的 SVG 文本对齐方式不一致

    我正在 Leaflet js 地图上绘制 SVG 标记图标 这些图标代表气象站 它们根据风向旋转 并以叠加形式显示平均风速 我已经能够让它在 Chrome 中按预期工作 但文本位置在 Firefox 中关闭 左边是 Chrome 55 0
  • SBT中项目间如何共享资源

    我正在工作的项目是一个网络应用程序Lift框架 我们正在使用xsbt 网络插件以及 有一个 核心 项目 其中包含绝大多数功能 我当前的目标是创建两个 分发 项目 将一组不同的类路径资源添加到 核心 项目 问题是我要么 1 无法运行 分发 项
  • 如何在 Visual Studio 中设置条件断点?

    有没有一种简单的方法可以在 Visual Studio 中设置条件断点 如果我只想当变量的值变为某值时才命中断点 我该怎么做 像往常一样设置断点 右键单击它 单击条件
  • UITableViewcornerRadius 在 iOS 上存在边框性能问题

    我有一些关于滚动性能的有趣通知UITableView with cornerRadius borderWidth and borderColor已启用 self tableView layer cornerRadius 10 f self
  • 如何在 Chrome 浏览器的 selenium Webdriver 中设置代理身份验证

    我正在尝试自动化 Web 应用程序 selenium 2 0 webdriver java Web 应用程序当前部署在本地网络上的 UAT 服务器中 我的测试用例正在执行 但我必须手动输入我的代理身份验证详细信息测试执行开始时的 Chrom
  • 在属性文件中逐行添加注释

    这是我想在属性文件中做的事情 Comments about key Value pair 1 Key 1 value 1 Comments about key Value pair 2 Key 2 value 2 Comments abou
  • 数据框的粘贴方法

    我想将数据框输入到粘贴中 并且希望粘贴将其视为我已单独输入该数据框的列 我想这样做的原因是因为我不确定我的数据框将有多少列 这里有 2 个 但我想要一个通用的解决方案来处理任意数量的列 我想要的输出是test1paste在下面的代码中 但我
  • 如果值小于零则返回零[重复]

    这个问题在这里已经有答案了 如果值小于零而不使用 case 语句 是否可以返回零 例如Max a 0 我希望我的代码尽可能简洁 只是为了好玩 DECLARE a INT 3 SELECT COALESCE NULLIF ABS a a 0
  • 执行动态交叉表查询

    我在 Postgres 数据库中实现了这个函数 http www cureffi org 2013 03 19 automatically creating pivot table column names in postgresql 这是
  • .app 文件在 Xcode 4 的新项目中显示为红色(丢失)

    每次我创建 Xcode 4 项目 iPhone 应用程序 cocoa 库 时 产品组下的 app 文件或 a 文件都会显示为红色 丢失 即使我构建了项目 文件仍然是红色的 我的所有设置都是默认的 尝试在设备上构建并运行 我注意到同样的红色文
  • 如何使用 Spring Security 登录页面传递附加参数

    我正在尝试将数据库名称设置为 Spring Security 登录页面的请求输入参数 目前我只获取使用 spring security 检索的用户名SecurityContextHolder getContext getAuthentica
  • 将值映射到色标

    我有一个值列表 应将其绘制到具有特定颜色的地图上 地图的绘制已经完成 但我需要找到一种方法来映射值n代表其价值的颜色 到目前为止 我的一个例子和解决方案是根据min and max然后将它们分配给十六进制颜色0对于最低的和255为最高 这当
  • 我可以根据另一个单元格的状态显示/隐藏 UITableView 中的某个单元格吗?

    我有一个样式为 Grouped 的 UITableView 我用它来在我的应用程序中设置一些选项 我希望此 UITableView 的一个单元格仅根据此 UITableView 的另一个单元格是否激活而显示 如果不是 第一个单元格应该显示
  • 如何更改格式化日期的区域设置?

    我想以特定格式和英文月份名称检索今天的日期 我在用着Format DateValue Now dd mmm yyyy 这给了我05 cze 2013 这是波兰语 我想要得到的是05 Jan 2013 我只对 VBA 解决方案感兴趣 另请提供
  • 忽略 NSURLErrorDomain 错误 -999 在 UIWebView 中不起作用

    我试图避免出现的问题UIWebView的委托返回这样的错误 我在委托实现中有常见的解决方法 我在互联网上的任何地方都看到过 void webView UIWebView webView didFailLoadWithError NSErro
  • 未启用 CarMode 的 Android 夜间模式

    所以我为夜间模式制作了单独的 xml 并将它们保存在layout night 然后我切换到夜间模式 UiModeManager uiManager UiModeManager getSystemService Context UI MODE
  • 是否有一个 Java 库可以“比较”两个对象?

    是否有一个类似于 Unix 程序 diff 的 Java 实用程序库 但是针对对象 我正在寻找可以比较相同类型的两个对象并生成表示它们之间差异的数据结构 并且可以递归比较实例变量中的差异 的东西 我是not寻找文本差异的 Java 实现 我
  • 为什么 gcc 自动矢量化不适用于大于 3x3 的卷积矩阵?

    我已经为卷积矩阵实现了以下程序 include
  • GZipStream 和 DeflateStream 生成更大的文件

    我正在尝试在 C 中使用 deflate gzip 流 但压缩后的文件似乎比以前更大 例如 我压缩了 900ko 的 docx 文件 但它生成了 1 4Mo 的文件 它对我尝试过的每个文件都执行此操作 也许我的做法是错误的 这是我的代码 F
  • 从纵向数据中选择最后一个观察值

    我有一个数据集 其中包含每个参与者的多次时间评估 我想为每个参与者选择最后一次评估 我的数据集如下所示 ID week outcome 1 2 14 1 4 28 1 6 42 4 2 14 4 6 46 4 9 64 4 9 71 4 1