热门标签 | 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,]

推荐阅读
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文详细介绍如何在 Apache 中设置虚拟主机,包括基本配置和高级设置,帮助用户更好地理解和使用虚拟主机功能。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
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社区 版权所有