BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
SASMuggleE
Calcite | Level 5

Hi all,

 

I have a dataset that has a variable "start" and a variable "end" with count data representing an interval. I want to convert that data to be 1 row per count rather than by interval, like this:

 

Subject  start  end  var

1             1       3       x

1             4       5       y

2             1       5       z

 

To look like this:

 

Subject  count  var

1             1        x

1             2        x

1             3        x

1             4        y

1             5        y

2             1        z

2             2        z

...

 

I dont know how to manipulate the array code to reference these variables instead of doing from i=1 to x. Any help is appreciated. Thank you..

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Qinzhu
SAS Employee

Is below code what you want? 

data foo;
	input subject start end var $;
datalines;
1 1 3 x
1 4 5 y
2 1 5 z
;

data convert;
	set foo;
	do count=start to end;
		output;
	end;
	drop start end;
run;

 

View solution in original post

1 REPLY 1
Qinzhu
SAS Employee

Is below code what you want? 

data foo;
	input subject start end var $;
datalines;
1 1 3 x
1 4 5 y
2 1 5 z
;

data convert;
	set foo;
	do count=start to end;
		output;
	end;
	drop start end;
run;

 

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 536 views
  • 0 likes
  • 2 in conversation