全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2533 11
2012-02-29
急求各位高手帮帮忙,我有这样一组数据,fol_1y、fol_2y、fol_3y分别是第1、2、3年的随访情况,result_1y、result_2y、result_3y是第1、2、3年的检测结果。现定义incident为result_1y为0,之后result_2y或者result_3y为1的情况,则incident=1,否则为零。但是现在想求incident=1时,取转变为1的那一次结果对应的之前最近一次fol_?y的结果。incident=0则找到最后一次检测对应的fol_3y。
如:ID=1的观测,result_1y需要找到fol_2y,ID=2找到fol_3y,ID=3的观测需要找到fol_2y,ID=4的观测找到fol_2y,而ID=5的观测找到fol_1y...求大家帮帮忙呀!

ID

fol_1y

fol_2y

fol_3y

result_1y

result_2year

result_3y

incident

1

0

1

1

2

0

0

0

0

3

0

0

1

1

4

0

1

1

5

0

1

1

1

6

0

0

0

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-2-29 17:52:11
如果只有3年的值,那么可以直接判断incident和result_2y的值就可得出结果。
要考虑一般情况的话,用array+do loop也可以实现。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-29 18:37:16
zhangzachary 发表于 2012-2-29 17:52
如果只有3年的值,那么可以直接判断incident和result_2y的值就可得出结果。
要考虑一般情况的话,用array+ ...
应该要考虑到3年的情况吧,因为有的是第三年才变为1。比较麻烦的是要找到跟变为1这一年之前的最后一次fol,不知用array+do loop应该怎样编程呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-29 18:41:10
只考虑3年的话,如果incident=1,那么只可能2y 或者3y 是1,只要判断2y是不是1就行了,是1,那么就是1y,不是则为2y。
array所有result,然后每次对所有循环,找到1后用i-1的值就行了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-29 18:49:11
zhangzachary 发表于 2012-2-29 18:41
只考虑3年的话,如果incident=1,那么只可能2y 或者3y 是1,只要判断2y是不是1就行了,是1,那么就是1y,不 ...
哦,incident是已经有了的,主要是如何找到fol的值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-29 21:10:42
如:ID=1的观测,result_1y需要找到fol_2y...
why?
jingju
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群