寻找每个患者最接近的匹配时间

2023-11-27

我有两组数据:

第一组:

 patient<-c("A","A","B","B","C","C","C","C")
 arrival<-c("11:00","11:00","13:00","13:00","14:00","14:00","14:00","14:00")
 lastRow<-c("","Yes","","Yes","","","","Yes")

 data1<-data.frame(patient,arrival,lastRow)

另一组数据:

 patient<-c("A","A","A","A","B","B","B","C","C","C")
 availableSlot<-c("11:15","11:35","11:45","11:55","12:55","13:55","14:00","14:00","14:10","17:00")

 data2<-data.frame(patient, availableSlot)

我想在第一个数据集中添加一列,以便对于每个患者的最后一行,它显示可用的插槽 最接近到达时间:

结果将是:

  patient arrival lastRow availableSlot
       A   11:00        
       A   11:00     Yes     11:15
       B   13:00        
       B   13:00     Yes     12:55
       C   14:00        
       C   14:00        
       C   14:00        
       C   14:00     Yes     14:00

如果有人能告诉我如何在 R 中实现这一点,我将不胜感激。


我会使用 data.table,首先通过转换为 ITime 并忽略冗余行来进行清理:

library(data.table)
setDT(data1)[, arrival := as.ITime(as.character(arrival))]
setDT(data2)[, availableSlot := as.ITime(as.character(availableSlot))]
DT1 = unique(data1, by="patient", fromLast=TRUE)

然后你可以做一个“滚动连接”:

res = data2[DT1, on=.(patient, availableSlot = arrival), roll="nearest", 
  .(patient, availableSlot = x.availableSlot)]

#    patient availableSlot
# 1:       A      11:15:00
# 2:       B      12:55:00
# 3:       C      14:00:00

怎么运行的

语法是x[i, on=, roll=, j].

  • on=是合并列。
  • 这是一个连接:对于每一行i,我们正在寻找匹配项x.
  • With roll="nearest",最后一列on=被“滚动”到最接近的匹配项。
  • The on=原始表中的列可以引用x.* and i.*前缀。
  • The j参数应该给出一个列列表,并且.()是一个别名list() here.

查看该包的介绍材料:http://r-datatable.com/Getting-started并输入?data.table与滚动连接相关的文档。


我会停在res,但如果你真的想把它放回到原来的表中......

# a very nonstandard step:
data1[lastRow == "Yes", availableSlot := res$availableSlot ]

#    patient  arrival lastRow availableSlot
# 1:       A 11:00:00                  <NA>
# 2:       A 11:00:00     Yes      11:15:00
# 3:       B 13:00:00                  <NA>
# 4:       B 13:00:00     Yes      12:55:00
# 5:       C 14:00:00                  <NA>
# 6:       C 14:00:00                  <NA>
# 7:       C 14:00:00                  <NA>
# 8:       C 14:00:00     Yes      14:00:00

Now, data1 has availableSlot在新列中,类似于您执行的操作data1$col <- val.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找每个患者最接近的匹配时间 的相关文章

  • R 编程常用工具

    如果已经以不同的方式问过这个问题 我深表歉意 但我找不到任何达到我想要的东西 我真的是从其他软件包 SPSS 开始接触 R 的 当我了解真正可以做什么时 我意识到我还需要其他 工具 这让我想到了我的问题 您有哪些用于开发 R 代码的设置 我
  • 如何将同一行中以逗号分隔的值拆分到R中的不同行

    我有一些数据来自谷歌表格 https forms gle rGQQL3tvA1PrE4dD8我想拆分以逗号分隔的答案 and 复制参与者的 ID 数据如下 gt head data names Q2 Q3 Q4 1 PART 1 fruit
  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 在 igraph 中为社区分配颜色

    我在 igraph 中使用 fastgreedy community 检测算法在 R 中生成社区 代码返回 12 个社区 但是在绘图时很难识别它们 因为它返回的图的颜色数量有限 我怎样才能用十二种不同的颜色绘制这个图表 l2 lt layo
  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 如何绘制堆积比例图?

    我有一个数据框 x lt data frame id letters 1 3 val0 1 3 val1 4 6 val2 7 9 id val0 val1 val2 1 a 1 4 7 2 b 2 5 8 3 c 3 6 9 我想绘制一个
  • 从 R 中的方差分析 (glm) 中提取残余偏差

    我在 R 中安装了一个 glm 模型并采用了方差分析表 我需要提取 残余偏差 列 但它会产生错误 以下是代码 创建数据 counts lt c 18 17 15 20 10 20 25 13 12 outcome lt gl 3 1 9 t
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d
  • 删除字符串末尾的句点和数字

    如何删除尾随句点 后面紧跟一个数字 长度为一位或两位数字 例子 z lt c awe p 56 red 45 ted 5 you 88 tom 我只想删除 45和 5 你只需要一个简单的正则表达式 z new gsub 0 9 z 一些评论
  • 如何使用 R 将每个文件的数据添加为附加行,从而将不同的 .csv 文件合并为一个完整的文件?

    我有几个不同的文件夹 它们都包含一个 csv 文件 所有这些 csv 文件都有一个单独的列 其中包含实验的一种条件的数据 我想以将每个文件的数据添加为新列的方式合并这些 csv 文件 目前 它看起来像这样 C1 csv 102 106 15
  • R 中按时间划分的平均值

    我每秒测量一次化合物浓度 我想求 30 秒和 60 秒的平均值 我一直在阅读这里的帖子 我尝试过lubridate and dplyr 但没有运气 我正在努力完成这项工作 但我一直没能做到 我正在从 SAS 过渡到 R 所以请耐心等待 这是
  • 如何在knitr和RStudio中为word和html设置不同的全局选项?

    我正在使用 RStudio 0 98 932 和 knitr 1 6 想要为word和html设置不同的全局knitr选项 例如 想要将word的fig width和fig height设置为6 html的fig width和fig hei
  • 一段 R 代码会影响 foreach 输出中的随机数吗?

    我使用运行模拟foreach and doParallel并与随机数 名为random在代码中 简而言之 我模拟一个足球联赛 随机生成所有比赛的获胜者以及相应的结果 在dt base没有比赛进行 在dt ex1 and dt ex24场比赛
  • 跟踪循环迭代

    抛硬币 成功 你赢100 否则你输50 你会一直玩 直到你口袋里有钱a 的价值如何a在任何迭代中都被存储 a lt 100 while a gt 0 if rbinom 1 1 0 5 1 a lt a 100 else a lt a 50
  • 将 ftransform 与折叠 R 包中的 fgroup_by 一起使用

    我正在尝试重现以下输出dplyr代码与R包裹collapse dplyr Code library tidyverse starwars gt select name mass species gt group by species gt
  • 尝试使用 JRI 将 R 与我的 Java 应用程序集成,但出现错误。谁能解释一下原因和解决办法吗?

    我需要将 Java 与 R 集成来运行一些数学命令并使用 R 的功能进行绘图 以下部分代码给出了错误 public static void main String args HelloRWorld r new HelloRWorld r h
  • R 中两个时间戳之间的左连接

    我的目标是执行左连接intervals哪里的bike id比赛和created at时间戳在records在 之间start and end in the intervals table gt class records 1 data ta
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段

随机推荐

  • 即使操作系统杀死应用程序,如何在android中保存/恢复全局变量

    在android中 Google建议我们将全局变量保存在Application中 但有一个问题 如果android操作系统因为内存不足而杀死应用程序 应用程序将重新创建 并且我保存的全局变量将丢失 我不知道什么时候保存 恢复这些变量 应用程
  • 如何计算asp.net中数据表列的总和?

    我有一个有 5 列的 DataTable ID Name 帐号 Branch Amount 数据表包含 5 行 如何将标签控件中金额列的总和显示为 总金额 要计算 DataTable 中列的总和 请使用数据表 计算 method 链接的 M
  • 如何在 appsettings.json 中加载多态对象

    有什么方法可以从中读取多态对象appsettings json以强类型的方式 下面是我需要的一个非常简单的示例 我有多个应用程序组件 名为Features这里 这些组件是由工厂在运行时创建的 我的设计意图是每个组件都由其单独的强类型选项配置
  • sqlite3 中的批量插入速度更快?

    我有一个大约 30000 行数据的文件 我想将其加载到 sqlite3 数据库中 有没有比为每行数据生成插入语句更快的方法 数据以空格分隔并直接映射到 sqlite3 表 是否有任何类型的批量插入方法可以将卷数据添加到数据库中 如果不是内置
  • 如何在远程端存储库上“git Blame”?

    在我的服务器上 我托管我的个人 git 远程项目 使用 gitosis 并且我构建了一个 Web 界面来浏览存储库 类似于 Github 在远程端 您不允许做很多事情 因为缺少工作树 这是正确的 顺便说一句 对于存储库资源管理器 只需很少的
  • 如何更改 WAMPSERVER 中的 MySQL 排序规则

    我如何将 WAMPSERVER 中的 MySQL 排序规则从 latin1 swedish ci 更改为 UTF 8 因为我认为我的 HTML 特殊字符变得一团糟 放入你的C wamp bin mysql mysql5 5 24 my in
  • ListView setOnItemClickListener 在自定义列表视图中不起作用

    我有一个列表视图 每行有两个文本视图和一个编辑文本 列表视图 setOnItemClickListener 不起作用 这是我的 Java 代码 public class CreateChallan extends Activity List
  • ASP.NET:如何从 web.config ConnectionString 创建连接?

    如何构建基于 DbConnection提供商名称 Sample 提供商名称s 系统 数据 SqlClient 系统 数据 OleDb 系统数据 ODBC FirebirdSql Data FirebirdClient 我的 IIS 服务器的
  • (如何)我可以从套接字文件描述符确定套接字系列

    我正在编写一个 API 其中包括 IPC 函数 这些函数将数据发送到另一个进程 该进程可能位于本地或另一台主机上 我真的希望发送功能能够像下面这样简单 int mySendFunc myDataThing t thing int sd 调用
  • Visual Studio 2017 Nuget pack 排除项目引用作为另一个 nuget 引用,而是添加程序集

    当我们在 Visual Studio 2017 中创建 nuget 包时 它默认将项目引用添加为另一个 nuget 引用 我们如何在创建包时禁用它 而是 选择不同的包名称 创建包时包含项目的 dll The PackageReference
  • 为什么结构体中的迭代器可以修改它?

    我发现值类型中的迭代器方法是允许修改的this 但是 由于 CLR 的限制 调用方法看不到这些修改 this按值传递 因此 迭代器和非迭代器中的相同代码会产生不同的结果 static void Main Mutable m1 new Mut
  • 通用可变参数的警告

    我声明了以下方法 private void mockInvokeDBHandler Map
  • 检测耳机何时插入

    有什么方法可以以编程方式确定耳机何时插入计算机 本质上 我只是想编写一个简单的工具 除非插入耳机 否则它会将我的声音静音 这可能吗 在 Windows Vista 及更高版本中 您可以使用设备到达和删除通知并检索端点外形规格来确定音频解决方
  • 在 MYSQL 中使用 SELECT DISTINCT

    做了很多搜索 但还没有真正找到我的 MYSQL 问题的答案 SELECT DISTINCT name type state country FROM table 结果 1 795 条记录 SELECT DISTINCT name FROM
  • 一些 startBrowsingForNearbyPlayersWithReachableHandler 问题

    我正在尝试使用 GameKit 进行本地匹配 GKMatchmaker sharedMatchmaker startBrowsingForNearbyPlayersWithReachableHandler 本质上 我正在尝试实现无界面的本地
  • 如何比较日期时间值,考虑到时区?

    我有两个DateTime变量 每个都有一个存储在变量中的时区 这样当我ToString格式包括 zzz 我得到一个字符串 包括 01 00 在设计时 我不知道时区是什么 我希望变量具有彼此不同的时区 我想比较两者DateTime值 以便我知
  • 如何在 Rust 中保存 PNG 图像?

    给定一个向量u8字节 每像素 4 字节 RGBA 如何将其保存到 PNG 文件 你可以使用 Piston 存储库中的镜像箱将原始缓冲区保存到磁盘 页面底部的示例向您展示了如何执行此操作 extern crate image fn main
  • 如何从xml文件中删除根元素

    亲爱的朋友们下午好 我的问题可能是这是一个非常基本的问题 即我们如何使用 xslt 从 xml 文件中删除根元素 下面给出了 Xml 文件示例
  • 确定在 python 中表示为字符串的值的类型

    当我使用 python 中的 csv 解析器读取逗号分隔的文件或字符串时 所有项目都表示为字符串 请参见下面的示例 import csv a 1 2 3 4 5 r csv reader a for row in r d row d 1 2
  • 寻找每个患者最接近的匹配时间

    我有两组数据 第一组 patient lt c A A B B C C C C arrival lt c 11 00 11 00 13 00 13 00 14 00 14 00 14 00 14 00 lastRow lt c Yes Ye