The following code does not work. How to correct it? Thanks
data have ;
infile datalines missover;
input obs 2. var1 $3 var2 $3 var3 $3 ;
datalines;
obs var1 var2 var3
1 Yes
2 Yes
3 Yes
4 Yes
5 Yes
6 Yes
7 Yes
8 Yes
9 Yes
10 Yes
11 Yes
12 Yes
13 Yes
14 Yes
15 Yes
16 Yes
17 Yes
18 Yes
19 Yes
20 Yes
21 Yes
22 Yes
23 Yes
24 Yes
25 Yes
26 Yes
27 Yes
28 Yes
29 Yes
30 Yes
31 Yes
32 Yes
33 Yes
34 Yes
35 Yes
36 Yes
37 Yes
38 Yes
39 Yes
40 Yes
41 Yes
42 Yes
43 Yes
;
run;
You'll have to adjust the following based on what your actual data look like but, for your example, the following would work:
data have ; infile datalines missover; input obs 2-3 var1 $ 10-12 var2 $ 22-24 var3 $ 34-36 ; datalines; 1 Yes 2 Yes 3 Yes 4 Yes 5 Yes 6 Yes 7 Yes 8 Yes 9 Yes 10 Yes 11 Yes 12 Yes 13 Yes 14 Yes 15 Yes 16 Yes 17 Yes 18 Yes 19 Yes 20 Yes 21 Yes 22 Yes 23 Yes 24 Yes 25 Yes 26 Yes 27 Yes 28 Yes 29 Yes 30 Yes 31 Yes 32 Yes 33 Yes 34 Yes 35 Yes 36 Yes 37 Yes 38 Yes 39 Yes 40 Yes 41 Yes 42 Yes 43 Yes ; run;
Art, CEO, AnalystFinder.com
When you specify the dsd option in the infile statement, successive delimiters are interpreted as a missing value.
But then you need to take care that only the correct number of delimiters appears between values.
In a case like this, you'll need to upload a sample of the exact file. It's important to be able to see exactly how the delimiters are structured. The forum can easily garble this so including the text file is the only way to ensure that you get a solution that actually will work on your data.
For example, is it by chance fixed width?
You'll have to adjust the following based on what your actual data look like but, for your example, the following would work:
data have ; infile datalines missover; input obs 2-3 var1 $ 10-12 var2 $ 22-24 var3 $ 34-36 ; datalines; 1 Yes 2 Yes 3 Yes 4 Yes 5 Yes 6 Yes 7 Yes 8 Yes 9 Yes 10 Yes 11 Yes 12 Yes 13 Yes 14 Yes 15 Yes 16 Yes 17 Yes 18 Yes 19 Yes 20 Yes 21 Yes 22 Yes 23 Yes 24 Yes 25 Yes 26 Yes 27 Yes 28 Yes 29 Yes 30 Yes 31 Yes 32 Yes 33 Yes 34 Yes 35 Yes 36 Yes 37 Yes 38 Yes 39 Yes 40 Yes 41 Yes 42 Yes 43 Yes ; run;
Art, CEO, AnalystFinder.com
Thank you, Art, this should work.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.