- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我目前拥有的数据:
df
patient ID Index_admission? adm_date dish_date
1244 FALSE 2/7/2009 2/8/2009
1244 TRUE 3/5/2009 3/15/2009
1244 FALSE 4/5/2011 4/7/2011
1244 FALSE 3/25/2012 3/27/2012
1244 TRUE 5/5/2012 5/20/2012
1244 TRUE 9/8/2013 9/15/2013
1244 FALSE 1/5/2014 1/15/2014
2333 FALSE 1/1/2010 1/8/2010
2333 FALSE 1/1/2011 1/5/2011
2333 TRUE 2/2/2011 2/25/2011
2333 FALSE 1/25/2012 1/28/2012
5422 TRUE 3/5/2015 3/15/2015
1243 TRUE 2/5/2009 2/8/2009
1243 TRUE 2/5/2011 2/19/2011
我需要从之前的 Index_admission
中找到 time_to_readmission
。我需要添加一个新列,从正确的 dish_date
中减去 adm_date
。仅当患者的 Index_admission
已达到 TRUE
时才应执行此操作。
另外如果患者有多个Index_admission
,time_to_readmission 应始终计算为最接近的Index_admission
日期。
通过查看我希望数据的外观可能更容易解释:
df1
patient ID Index_admission? adm_date dish_date time_to_readmission
1244 FALSE 2/7/2009 2/8/2009 NA
1244 TRUE 3/5/2009 3/15/2009 NA
1244 FALSE 4/5/2011 4/7/2011 751
1244 FALSE 3/25/2012 3/27/2012 1106
1244 TRUE 5/5/2012 5/20/2012 1147
1244 TRUE 9/8/2013 9/15/2013 476
1244 FALSE 1/5/2014 1/15/2014 112
2333 FALSE 1/1/2010 1/8/2010 NA
2333 FALSE 1/1/2011 1/5/2011 NA
2333 TRUE 2/2/2011 2/25/2011 NA
2333 FALSE 1/25/2012 1/28/2012 334
5422 TRUE 3/5/2015 3/15/2015 NA
1243 TRUE 2/5/2009 2/8/2009 NA
1243 TRUE 2/5/2011 2/19/2011 727
请帮助我完成所需的编码。提前致谢。
> dput(df)
structure(list(patient.ID = c(124L, 124L, 124L, 124L, 124L, 124L,
124L, 233L, 233L, 233L, 233L, 542L, 1243L, 1243L), Index.admission. = c(FALSE,
TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE,
TRUE, TRUE, TRUE), adm_date = structure(c(8L, 10L, 12L, 9L, 13L,
14L, 4L, 1L, 2L, 5L, 3L, 11L, 6L, 7L), .Label = c("1/1/2010",
"1/1/2011", "1/25/2012", "1/5/2014", "2/2/2011", "2/5/2009",
"2/5/2011", "2/7/2009", "3/25/2012", "3/5/2009", "3/5/2015",
"4/5/2011", "5/5/2012", "9/8/2013"), class = "factor"), dish_date = structure(c(7L,
8L, 11L, 10L, 12L, 13L, 1L, 4L, 3L, 6L, 2L, 9L, 7L, 5L), .Label = c("1/15/2014",
"1/28/2012", "1/5/2011", "1/8/2010", "2/19/2011", "2/25/2011",
"2/8/2009", "3/15/2009", "3/15/2015", "3/27/2012", "4/7/2011",
"5/20/2012", "9/15/2013"), class = "factor")), .Names = c("patient.ID",
"Index.admission.", "adm_date", "dish_date"), class = "data.frame", row.names = c(NA,
-14L))
最佳答案
这应该有效。请注意,当我运行它时出现 data.table
类型错误,但答案是正确的。
这里需要注意的是,这会计算从满足您的条件的第一个dish_date
开始重新接纳的时间,这是您在帖子中要求的,“减去adm_date
来自 dish_date
(前一行)”。你没有指定前一行......我选择第一个 dish_date
满足你的标准。
从您的示例输出来看,这并不是您正在做的。相反,您似乎对如何选择“前一行”有一些不清楚的标准。不清楚这条规则是什么。如果您想要不同的输出,请澄清问题
calc_readmit <- function(df) {
if (nrow(df) == 1) return(NA)
admitted <- c(0,cumsum(df$Index_admission))
admitted <- admitted[-length(admitted)]
dt1 <- df$dish_date[min(which(admitted > 0))-1]
admit2 <- ifelse(admitted > 0, dt1, NA)
time <- as.integer(df$adm_date) - admit2
as.integer(ifelse(admitted > 0, time, NA))
}
library(data.table)
df <- data.table(df, key= "id")
df <- df[, time_to_readmission := calc_readmit(.SD), by= "id"]
R> df
id Index_admission. adm_date dish_date time_to_readmission
1: 1243 TRUE 2009-02-05 2009-02-08 NA
2: 1243 TRUE 2011-02-05 2011-02-19 727
3: 1244 FALSE 2009-02-07 2009-02-08 NA
4: 1244 TRUE 2009-03-05 2009-03-15 NA
5: 1244 FALSE 2011-04-05 2011-04-07 751
6: 1244 FALSE 2012-03-25 2012-03-27 1106
7: 1244 TRUE 2012-05-05 2012-05-20 1147
8: 1244 TRUE 2013-09-08 2013-09-15 1638
9: 1244 FALSE 2014-01-05 2014-01-15 1757
10: 2333 FALSE 2010-01-01 2010-01-08 NA
11: 2333 FALSE 2011-01-01 2011-01-05 NA
12: 2333 TRUE 2011-02-02 2011-02-25 NA
13: 2333 FALSE 2012-01-25 2012-01-28 334
14: 5422 TRUE 2015-03-05 2015-03-15 NA
关于R:为选定数量的值减去后续行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913014/
@ 。 目录 集成Flink 编程示例 打包运行 CDC入湖 概述
当我通过多个模式匹配发送一个变量时,这样做的命名约定是什么? val somethingBetweenOriginalAndResult = original match { case ...
this post 的后续工作:(根据评论中的要求进行更新) 我从实际(伪装的)示例数据以及在该数据上运行脚本的结果开始。 原始数据样本: 目录中前两个文件的标题和前两行。它们是相同的数据,这不是错误
当我通过多个模式匹配发送一个变量时,这样做的命名约定是什么? val somethingBetweenOriginalAndResult = original match { case ...
this post 的后续工作:(根据评论中的要求进行更新) 我从实际(伪装的)示例数据以及在该数据上运行脚本的结果开始。 原始数据样本: 目录中前两个文件的标题和前两行。它们是相同的数据,这不是错误
我just asked a very similar question here两个答案都有效。但是,当我在每个字典中有 > 2 个字典键时,第 3 个键的值始终为 0。例如: myList = [{
此问题是 Trapping Frame Entrance in tkinter 的后续问题其中@jasonharper 提供了非常有用的答案。 在下面的代码中,我将入口绑定(bind)到 Canvas
使用 subsequent from 子句和query continuation 有什么区别? 后面的 from 子句是指使用 ...from...in...from...in...select 模式
我的原题可以查到here ,为此我得到了一些很好的答案、idas 和提示。 作为可行性和性能研究的一部分,我已经开始转换我的模式,以便使用这些想法对我的数据进行版本控制。在这样做的过程中,我想出了一些
圆 A 沿 x 轴向右移动。圆 B 沿 y 轴向上移动。我想知道他们是否会发生碰撞。 (不是何时,只是如果。) 半径相同,恒速度不同。 This answer似乎解决了这个问题,我的问题最好应该是这个
在需要定期轮询服务器的 AJAX 应用程序(如聊天应用程序)中,建议两次调用之间的最短时间是多少,以便尽快完成更新?什么时间被认为是服务器和客户端的 hogs? 最佳答案 这个问题的答案很大程度上取决
这是 a previous question on Stack Overflow 的后续行动(参见引用链接)。考虑以下代码(来自 W3Schools): /* unvisited link */ a:
昨天,我问了a question关于如何在 .NET 中动态呈现某些内容:具体来说,我询问了如何创建用于“绘图”/渲染的白色“ Canvas ”,使用什么框架等。但是,许多答案建议我问更具体的答案,所
这是上一个问题的后续: Java compiler fails to recognise static inner class accepted answer给出了一个解决方法,如果找不到更好的解决方
这个问题跟在问题之后:How to read two lines from a file and create dynamics keys in a for-loop? 但是,问题的性质已经发展到我想
好的跟进 this thread ,这就是我想出的…… public class SharweAuthorizeAttribute : AuthorizeAttribute { private
Using nested loops 我仍在努力实现上述问题中所述的相同目标。基本上我的代码现在看起来像这样: for(int ac = 0; ac < gravityObject.length; a
一直在寻找这个没有结果。我有一个片段,我想将文本文件读入 python 中的变量中,以便稍后可以引用它(特别是杀死正在运行的进程)。 文件生成如下: os.system('wmic process w
我创建了 2 个自定义跟进 Intent ,对于这 2 个自定义跟进 Intent ,还有 3 个跟进 Intent 。一切安好。我从这 2 个阶段获取信息,然后显示结果。该过程大约是 2 个后续问题
这个问题在这里已经有了答案: Iterate through parameters skipping the first (5 个答案) 关闭 5 年前。 我有一个脚本,它的第一个参数是一个对象的标
我是一名优秀的程序员,十分优秀!