Solved
Contributor
Posts: 39

Repeat the value in a varaible across the rows.

Hi

I would like to repeat a value in varaible across all the observations.

For ex:

Have:

Obs       Product        Amount         Count

1.           Apple            10.0              8

2.           Pineapple

3.           Strawberry

4.           Kiwi

5.           Cantaloupe

Want:

Obs      Product        Amount            Count

1.          Apple            10.0                  8

2.          Pineapple     10.0                  8

3.          Strawberry    10.0                  8

4.          Kiwi               10.0                  8

5.          Cantaloupe   10.0                  8

Neal

Accepted Solutions
Solution
‎11-06-2015 12:03 PM
Super User
Posts: 23,754

Re: Repeat the value in a varaible across the rows.

Is it always the first observation? Is this an existing dataset or does it get created this way somehow.

You can google LOCF (Last observation carried forward)

All Replies
Solution
‎11-06-2015 12:03 PM
Super User
Posts: 23,754

Re: Repeat the value in a varaible across the rows.

Is it always the first observation? Is this an existing dataset or does it get created this way somehow.

You can google LOCF (Last observation carried forward)
Super User
Posts: 13,563

Re: Repeat the value in a varaible across the rows.

Also, does that variable somewhere in the data reset to a new value? Do both always change together or may the Amount reset separately from the count?

Super User
Posts: 6,781

Re: Repeat the value in a varaible across the rows.

If there is really only a value on the first observation, you can do it this way:

data want;

if _n_=1 then set have (keep=amount count);

set have (drop=amount count);

run;

If there might be additional observations later in the data set that contain AMOUNT and COUNT then you have to go with the LOCF suggestion.  It's not all that complicated.

Good luck.

Frequent Contributor
Posts: 77

Re: Repeat the value in a varaible across the rows.

data want(drop = amount count rename = (amount1=amount count1=count));
set have;
retain amount1 count1;
if Amount ne . then amount1=amount ;
if count ne . then count1=count;
run;

🔒 This topic is solved and locked.