Hi,
I have a dataset which looks like:
data have;
infile datalines;
input numbers;
datalines;
1
1
.
2
3
4
.
5
5
6
7
7
;
In case the previous obervation is not . and the present observation equals to the previous value, then i would like to set the current value to . So what I would like to have is
data want;
infile datalines;
input numbers;
datalines;
1
.
.
2
3
4
.
5
.
6
7
.
;
Can someone help me solve this problem? Many thanks in advance!
BR Dingdang
lag() or dif();
data have;
infile datalines;
input numbers;
datalines;
1
1
.
2
3
4
.
5
5
6
7
7
;
data want;
set have;
if dif(numbers)=0 then
numbers=.;
run;
lag() or dif();
data have;
infile datalines;
input numbers;
datalines;
1
1
.
2
3
4
.
5
5
6
7
7
;
data want;
set have;
if dif(numbers)=0 then
numbers=.;
run;
data have; infile datalines; input numbers; datalines; 1 1 . 2 3 4 . 5 5 6 7 7 ; run; data want; set have; by numbers notsorted; if not first.numbers then numbers=.; run; data want1; set have; by numbers notsorted; if numbers=lag(numbers) then numbers=.; run;
Xia Keshan
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.