turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- SAS Programming
- /
- Base SAS Programming
- /
- computing multiple occurrences

Topic Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-22-2016 09:55 PM

Hi all,

I would like to get a total of all roads (digit_road1 to digit_road4); When I used the sum statement such as total_digit=sum(of digit_road1-digit_road4) I got the number of states 8 instead of 28 , which represents the number of occurence of roads.

Any help would be greatly appreciated. Thanks

See code below

data traffic;

infile datalines;

input state$ digit_road1 digit_road1 digit_road2 digit_road3 digit_road4 ;

datalines;

AL 101 103 . 345

AK 205 590 500 700

AZ . 100 390 .

IN 890 623 . 678

MD 755 400 222 678

IL 100 225 678 333

CA 800 455 900 567

TX 120 201 862 108;

** **

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to archibald

02-22-2016 10:09 PM

Where is 8 and 28 coming from based on your sample data?

Depending on your version of SAS you may need to reference the variable list as var1--var2 or var: to use all variables that start with the prefix "var".

I didn't think that would happen with the OF keyword though. In older versions of SAS you could be taking the sum of road1-road4 which is really just the substraction of the two variables.

What would you like your output to look like?

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Reeza

02-23-2016 08:12 PM

8 is the number of cases, that is the number of observations (states).

I wat the output to be the total of all the digit_road variables.

I wat the output to be the total of all the digit_road variables.

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to archibald

02-22-2016 10:33 PM

Use the N function (count non missing arguments) and sum statements (retained and initialized at 0)

```
data traffic;
infile datalines;
input state$ digit_road1 digit_road2 digit_road3 digit_road4 ;
datalines;
AL 101 103 . 345
AK 205 590 500 700
AZ . 100 390 .
IN 890 623 . 678
MD 755 400 222 678
IL 100 225 678 333
CA 800 455 900 567
TX 120 201 862 108
;
data roads;
set traffic end=done;
roads + n(of digit_road1-digit_road4);
states + 1;
if done then output;
keep roads states;
run;
proc print data=roads noobs; run;
```

PG