0

我遇到的问题是这样的:

我有一个数据库,其中包含一长串患者的 X 光片和相关信息,按患者 ID 排序。我想做的是找到每个患者进行第一次 X 光检查的时间,我想为这些患者的每张 X 光片填写这个时间。问题是每个患者经常有多个 X 射线,我不确定如何将数据从另一列复制到我的 timeOfFirstXray 列中。

例如; (对不起我的格式很差)

ptid ...dateandtimeofxray ..... dateandtimeof1stXRAY

4 ........2011 年 1 月 21 日 4:30 ...... 2011 年 1月 21 日 4:30

4 .......2011 年 2 月 22 日 5:11 ...... 2011 年 1 月 21 日 4:30

4 .......25/5/2011 5:00 ...... 21/1/2011 4:30

5 .......2000 年 7 月 29 日 3:00 ...... 2000 年7 月 29 日 3:00

5 .........2000 年 7 月 30 日 4:00 ...... 2000 年 7 月 29 日 3:00

5 ........ 2000 年 7 月 31 日 5:00 ...... 2000 年 7 月 29 日 3:00

5 .........2000 年 1 月 8 日 1:00 ...... 2000 年 7 月 29 日 3:00

6 .........2002 年 1 月 9 日 2:00 ...... 2002 年 1月 9 日 2:00

8 ........ 2008 年 3 月 10 日 3:23 ...... 2008 年 3 月10 日 3:23

8 .........2008 年 4 月 10 日 5:00 ...... 2008 年 3 月10 日 3:23

8 ........ 2008 年 5 月 10 日 9:00 ...... 2008 年 3 月10 日 3:23

我的伪代码是:

将计数器设置为 0,将每行的日期变量初始化为第一行的日期值,如果 counter < patientID,counter++ 直到与 id 相等,则将日期变量设置为该行中的日期值,并将该值设置为该行的 timeOfFirstXray。否则,如果计数器 == 患者 ID,则将日期变量中的现有值复制到该行的 timeOfFirstXray

我以前从未使用过 SPSS 或 excel 来处理这类东西,所以基本上我要找的是上面的翻译。

谢谢你的阅读!

4

2 回答 2

1

这是一个 SPSS 选项。

`do if (missing(lag(ptid)) 或 ptid ne lag(ptid))。
计算 1stxray 的日期和时间 = xray 的日期和时间。
万一。
离开 1stxray 的日期和时间。`

这假定输入数据集中不存在 dateandtimeof1stxray。

HTH,乔恩·派克

于 2012-08-13T22:29:27.730 回答
0

这是一个 Excel 选项。假设您的数据从第 2 行开始,请在 C2 中输入此公式并向下复制。请注意,这是一个数组公式,必须使用 Ctrl-Shift-Enter 输入。(如果操作正确,您会在公式周围看到花括号。)然后根据需要向下复制:

=MIN(IF(($A$2:$A$12=A2)*($B$2:$B$12),$B$2:$B$12))

在此处输入图像描述

调整您的范围以适合您的数据。请注意,即使它们在源数据中未按时间顺序排列,它也会获取最早的日期。

如果您对公式背后的逻辑感兴趣,请参阅我博客上的这篇文章

如果您只想显示最小值,您可以通过使用 Excel 中的数据透视表(此处显示 Excel 2010)来完成类似于 Andy W 上述评论的操作。关键是“将值显示为”Min:

在此处输入图像描述

于 2012-08-11T19:23:15.900 回答