a********a 发帖数: 346 | 1 I have a data like the following.
Id T1 T2 T3 T4
1 1/1/2011 1/1/2011 3/1/2011 5/1/2011
2 3/1/2009 8/1/2009 8/1/2009 10/1/2009
3 5/1/2008 8/1/2008 5/12008 11/2/2008
As there are some repeated value for each ID. How can I easily set the
repeated value as missing? i.e, I want a data like
Id T1 T2 T3 T4
1 1/1/2011 . 3/1/2011 5/1/2011
2 3/1/2009 8/1/2009 . 10/1/2009
3 5/1/2008 8/1/2008 . 11/2/2008
Thanks a lot. |
r******m 发帖数: 369 | 2 你的第三行第三个数据格式错了吧
data test (drop=i);
infile cards;
input id T1:mmddyy10. T2:mmddyy10. T3:mmddyy10. T4:mmddyy10.;
array T{1:4} T1-T4;
do i=4 to 2 by -1;
if T{i}=T{i-1} then T{i}=.;
end;
format T1-T4 mmddyy10.;
cards;
1 1/1/2011 1/1/2011 3/1/2011 5/1/2011
2 3/1/2009 8/1/2009 8/1/2009 10/1/2009
3 5/1/2008 8/1/2008 5/12008 11/2/2008
run; |
D******n 发帖数: 2836 | 3 This doesn't cover all the situations , u need a exhaustive search.
data a2(drop= i j);
set a1;
array tt{*} t1-t4;
do i=2 to dim(tt);
do j=1 to i-1;
if tt{i} = tt{j} then tt{i}=.;
end;
end;
run;
【在 r******m 的大作中提到】 : 你的第三行第三个数据格式错了吧 : data test (drop=i); : infile cards; : input id T1:mmddyy10. T2:mmddyy10. T3:mmddyy10. T4:mmddyy10.; : array T{1:4} T1-T4; : do i=4 to 2 by -1; : if T{i}=T{i-1} then T{i}=.; : end; : format T1-T4 mmddyy10.; : cards;
|
r******m 发帖数: 369 | 4 这个看楼主想要什么样的表格了,假如只是把相邻的相同数据处理成missing的话可以
用我这个,如果是所有一样的数据都要设成missing那么是不够。
【在 D******n 的大作中提到】 : This doesn't cover all the situations , u need a exhaustive search. : data a2(drop= i j); : set a1; : array tt{*} t1-t4; : do i=2 to dim(tt); : do j=1 to i-1; : if tt{i} = tt{j} then tt{i}=.; : end; : end; : run;
|
a********a 发帖数: 346 | 5 Both of your guys are so cool. I get what I want from your code. Thanks so
much. |
a********i 发帖数: 205 | 6
试了这个好像也不对
【在 r******m 的大作中提到】 : 这个看楼主想要什么样的表格了,假如只是把相邻的相同数据处理成missing的话可以 : 用我这个,如果是所有一样的数据都要设成missing那么是不够。
|
l*********s 发帖数: 5409 | 7 do this in python or shell script, no need to wrestle with SAS |
a********i 发帖数: 205 | |