【发布时间】:2017-07-17 09:49:34
【问题描述】:
假设我有以下示例:
我的原始数据集包括从VisitLink 到Dis 3 的变量。我想创建一个新的变量new,这样当我按Patient 对数据进行分组时,回顾该患者就诊前的20 天,检查Dis1 在当时的任何一次就诊中是否为真。我想要的new 是:
我做了几次尝试,但他们都忽略了分组。
Patient DaysToEvent Dis1 Dis2 Dis3 new
1 130 TRUE FALSE FALSE TRUE
1 135 FALSE FALSE FALSE TRUE
2 456 TRUE TRUE FALSE TRUE
2 500 FALSE FALSE FALSE FALSE
2 550 TRUE FALSE FALSE TRUE
2 560 FALSE TRUE TRUE TRUE
3 200 FALSE FALSE FALSE FALSE
3 400 TRUE TRUE FALSE TRUE
3 410 FALSE TRUE FALSE TRUE
3 510 FALSE FALSE FALSE FALSE
4 1 TRUE FALSE FALSE TRUE
4 20 FALSE TRUE FALSE TRUE
4 110 FALSE FALSE FALSE FALSE
谢谢!
【问题讨论】:
-
你能提供一个可重现的例子吗?
-
您提供的列
new包含您的预期输出?如果是这样,我很难理解你想要什么。 -
@Jimbou
new是我想要的输出。我只是编了个例子。事实上,我正在尝试为 300 万条记录执行此操作,因此我无法手动执行此操作 -
@raistlin 你能解释一下你的问题吗?澄清一下,我想要代码生成
new函数的想法。让我进一步解释一下,对于患者 #1,即使他没有被诊断出第一种疾病,但在那次访问前 20 天内,他在较早的事件中被诊断出对该疾病呈阳性,这就是为什么它是 TRUE -
已添加第二个解决方案。