|
Rune:
It is also easy to submit fairly basic programming / logic questions to the
list, perhaps easier than solving your own problems.
If there is any question about the order of year / seq in the input dataset
/ cards, a sort ought to be added before the 'data missing' step.
data a;
input year seq;
cards;
1994 2
<many cards snipped>
1998 38
run;
data missing ( keep = year missing_seq );
set a;
by year;
do missing_seq = sum(lag(seq) * not(first.year),1 ) to ( seq - 1 );
output ;
end;
run;
options nocenter;
proc print data=missing;
run;
The SAS System 07:49
Tuesday, April 29, 2003 1
missing_
Obs year seq
1 1994 1
2 1994 41
3 1994 52
4 1994 68
5 1994 93
6 1994 94
7 1994 110
8 1995 30
9 1995 39
10 1995 40
11 1995 53
12 1995 59
13 1995 63
14 1998 1
15 1998 2
16 1998 3
17 1998 4
18 1998 5
19 1998 6
20 1998 7
21 1998 8
22 1998 9
23 1998 10
24 1998 11
25 1998 12
26 1998 13
27 1998 14
28 1998 15
29 1998 16
30 1998 17
31 1998 18
32 1998 19
33 1998 20
34 1998 21
35 1998 22
36 1998 23
37 1998 27
-----Original Message-----
From: Rune Runnestoe [mailto:rune@FASTLANE.NO]
Sent: Tuesday, April 29, 2003 10:31 AM
To: SAS-L@LISTSERV.UGA.EDU
Subject: Missing rows
Hello, can anyone help me with a code that outputs the
missing rows
according to the following rules:
1. Each Seq shall start with 1 and increment by 1 within
each year
2. The last SakSeqNum within each Year is the upper limit
3. Both Year and Seq is numeric
4. If a hole consists of many subseqent missing seq, each of
the
missing rows shall be outputted.
I must say that I have asked for a solution to this problem
before in
this usergroup, and there has been several solutions, but so
far none
has done what they were supposed to do. It is easy to make
suggestions, but please test it, too. Especially demand nr.
4 does has
never worked in any solution so far.
Here is the real data to test:
Year Seq
1994 2
1994 3
1994 4
1994 5
1994 6
1994 7
1994 8
1994 9
1994 10
1994 11
1994 12
1994 13
1994 14
1994 15
1994 16
1994 17
1994 18
1994 19
1994 20
1994 21
1994 22
1994 23
1994 24
1994 25
1994 26
1994 27
1994 28
1994 29
1994 30
1994 31
1994 32
1994 33
1994 34
1994 35
1994 36
1994 37
1994 38
1994 39
1994 40
1994 42
1994 43
1994 44
1994 45
1994 46
1994 47
1994 48
1994 49
1994 50
1994 51
1994 53
1994 54
1994 55
1994 56
1994 57
1994 58
1994 59
1994 60
1994 61
1994 62
1994 63
1994 64
1994 65
1994 66
1994 67
1994 69
1994 70
1994 71
1994 72
1994 73
1994 74
1994 75
1994 76
1994 77
1994 78
1994 79
1994 80
1994 81
1994 82
1994 83
1994 84
1994 85
1994 86
1994 87
1994 88
1994 89
1994 90
1994 91
1994 92
1994 95
1994 96
1994 97
1994 98
1994 99
1994 100
1994 101
1994 102
1994 103
1994 104
1994 105
1994 106
1994 107
1994 108
1994 109
1994 111
1994 112
1994 113
1994 114
1994 115
1994 116
1995 1
1995 2
1995 3
1995 4
1995 5
1995 6
1995 7
1995 8
1995 9
1995 10
1995 11
1995 12
1995 13
1995 14
1995 15
1995 16
1995 17
1995 18
1995 19
1995 20
1995 21
1995 22
1995 23
1995 24
1995 25
1995 26
1995 27
1995 28
1995 29
1995 31
1995 32
1995 33
1995 34
1995 35
1995 36
1995 37
1995 38
1995 41
1995 42
1995 43
1995 44
1995 45
1995 46
1995 47
1995 48
1995 49
1995 50
1995 51
1995 52
1995 54
1995 55
1995 56
1995 57
1995 58
1995 60
1995 61
1995 62
1995 64
1998 24
1998 25
1998 26
1998 28
1998 29
1998 30
1998 31
1998 32
1998 33
1998 34
1998 35
1998 36
1998 37
1998 38
Regards
Rune Runnestoe
|