r - R - 使用多种事件类型和 ID 计算自上次事件以来经过的时间
问题描述
之前也有人问过类似的问题,问题是如何计算事件发生后的观察次数。我还有一个要求。如何计算自同一类型观察以来的天数,以及查找自任何其他类型事件以来的天数。我也有身份证。
为了说明,请参见下文。我正在尝试使用 Datatables 在 R 中执行此操作,但收效甚微。
是)我有的:
date event id
2000-07-06 2 1
2000-07-07 1 1
2000-07-09 0 1
2000-07-10 0 1
2000-07-15 2 1
2000-07-16 1 1
2000-07-20 0 1
2000-07-21 1 1
2000-07-06 1 2
2000-07-07 2 2
2000-07-15 0 2
2000-07-16 0 2
2000-07-17 2 2
2000-07-18 1 2
我想要的如下:
date event id days_since_event_1 days_since_event_2
2000-07-06 2 1 NA NA
2000-07-07 1 1 NA 1
2000-07-09 0 1 2 3
2000-07-10 0 1 3 4
2000-07-15 2 1 8 9
2000-07-16 1 1 9 1
2000-07-20 0 1 4 5
2000-07-21 1 1 5 6
2000-07-06 1 2 NA NA
2000-07-07 2 2 1 NA
2000-07-15 0 2 9 8
2000-07-16 0 2 10 9
2000-07-17 2 2 11 10
2000-07-18 1 2 12 1
这两个事件是相互排斥的,即它们不能在同一天发生。希望听到一些好的建议。祝一切顺利。
解决方案
您可以使用特定的事件编码对所有人的日期进行子集化,例如:
date.2 = DATAFRAME[which(DATAFRAME[,2]==2),1]
然后就做
DATAFRAME[which(DATAFRAME[,2]==2),5] = as.numeric(diff.Date(date.2))
等等。可能这更容易做到,但这是我想到的第一件事。DATAFRAME 只是您的数据框的名称。
编辑:如果我没看错,你想要在 ID 和事件列彼此不同的地方使用 NA?然后你可以继续: DATAFRAME[which(DATAFRAME[,2] != DATAFRAME[,3]),c(4,5)] = NA 或类似的东西
推荐阅读
- javascript - JQuery slidetoggle嵌套列表关闭打开列表不起作用
- primefaces - 自定义 pe:documentViewer 按钮行为
- excel - 用于数据聚合的 VBA 或 excel 公式
- r - 将横截面数据转换为 R 中的面板数据
- android - Android Build Failed: License for package Android SDK Build-Tools 28.0.3 not accepted
- java - Java 列表错误“找不到符号 - 方法 getItem(int)”
- sql - 想检查在其他表中设置的标志
- python - 数据摄取:实时接收和解码消息文件(.txt)
- angular - Angular Flex 布局:圣杯设计
- java - Java/GlassFish MySQLNonTransientConnectionException