SAS中文论坛
标题:
data manipulation
[打印本页]
作者:
shiyiming
时间:
2006-2-5 18:29
标题:
data manipulation
现有这样一个问题
有一个现成的数据集(import进来的)包含以下变量:
subject $, time, con$
例如:
subject time con
1 0 0
1 5 0
1 10 4
1 20 5
1 30 8
1 40 12
1 50 30
1 [color=blue:5441e]60[/color:5441e] 90
1 90 50
1 120 40
1 150 30
1 180 20
1 210 16
1 240 10
1 300 [color=red:5441e]0[/color:5441e]
1 360 [color=red:5441e]0[/color:5441e]
2 0 0
2 5 0
2 10 13
2 20 20
........
数据的规律是:每个subject都有(0-360min)16个时间点。而每个subject的con值的趋势都是由低到高再到低,且开头结尾都会有数量不定的0。
定义两个变量 c_max 和t_max, c_max是con的最大值而t_max是c_max的time值。
现在希望将同一个subject中,time>t_max且con=0的那些观测的con变成ND
上面数据集中蓝色的就是t_max,红色的0应该改为ND
由于原始数据已经import成SAS数据集,故只能用set来读取数据。本人试图使用循环语句来做,由于是新手,弄了半天也没成功,觉得应该有办法实现,故拿出来请大家指点指点。
我的思路是这样的:
1 找出每个subject的t_max。
2 用set读取数据if time>t_max and con='0' then con='ND'
不过有个困难是:subject的数目是不定的 我希望让程序自动根据subject的个数来产生相应数目t_max。
希望大家多多指点,无论是语句还是思路。先拜谢了!
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2