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.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.