热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

R:删除重复的条目,如果它们在一年内到来-R:removingduplicatedentriesiftheycomewithinayear

ImnewtoR,Ihaveadataframeof500000entriesofpatientIDsanddatesandothervariables..我是

Im new to R, I have a data frame of 500000 entries of patient IDs and dates and other variables..

我是R的新手,我有一个500000条患者ID和日期以及其他变量的数据框。

I want to remove any repeated duplicated patient ID(PtID) if they happen to come within one year of their first appearance.. for example:

我想删除任何重复的重复患者ID(PtID),如果它们恰好在他们第一次出现后的一年内...例如:

 PtID    date**
 1. 1    01/01/2006
 2. 2    01/01/2006
 3. 1    24/02/2006 
 4. 4    26/03/2006
 5. 1    04/05/2006
 6. 1    05/05/2007

in this case I want to remove the 3rd and the 5th rows and keep the 1st and 6th rows..

在这种情况下,我想删除第3行和第5行并保留第1行和第6行..

can somebody help me with this please.. this is the str(my data which is called final1)

请有人帮我这个..这是str(我的数据叫做final1)

str(final1)
'data.frame':   605870 obs. of  70 variables:
...
 $ Date          : Date, format: "2006-03-12" "2006-04-01" ...
$ PtID          : int  11251 11251 11251 11251 11251 11251 11251 30938 30938 11245 ...
...

1 个解决方案

#1


1  

Here's one solution that uses ply and lubridate. First load the packages:

这是一个使用ply和lubridate的解决方案。首先加载包:

require(plyr)
require(lubridate)

Next create some sample data (notice that this is a bit more straightforward than your example!)

接下来创建一些示例数据(请注意,这比您的示例更简单!)

num = 1:6
PtID = c(1,2,1,4,1,1)
date = c("01/01/2006", "01/01/2006","24/02/2006", "26/03/2006", "04/05/2006",
  "05/05/2007")
dd = data.frame(PtID, date)

Now we make the date column an R date object:

现在我们将日期列设为R日期对象:

dd$date = dmy(date)

and a function that contains the rule of whether a row should be included:

以及包含是否应包含行的规则的函数:

keepId = function(dates) {
  keep = ((dates - min(dates)) > 365*24*60*60) |
  ((dates == min(dates)))
  return(keep)
}

All that remains is using ddply to partition the date frame by the PtID

剩下的就是使用ddply通过PtID对日期帧进行分区

dd_sub = ddply(dd, c("PtID"), transform, keep = keepId(date))
dd_sub[dd_sub$keep,]

推荐阅读
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • andr ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文探讨了在Java多线程环境下,如何确保具有相同key值的线程能够互斥执行并按顺序输出结果。通过优化代码结构和使用线程安全的数据结构,我们解决了线程同步问题,并实现了预期的并发行为。 ... [详细]
  • 本文总结了在使用Ionic 5进行Android平台APK打包时遇到的问题,特别是针对QRScanner插件的改造。通过详细分析和提供具体的解决方法,帮助开发者顺利打包并优化应用性能。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
author-avatar
cut1089289
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有