DATA Step, Macro, Functions and more

drop data

Accepted Solution Solved
Reply
Contributor
Posts: 23
Accepted Solution

drop data

Hi, I found this example in SAS page

 

data Turbine;
informat Day date7.;
format Day date5.;
label KWatts='Average Power Output';
input Day @;
do i=1 to 10;
input KWatts @;
output;
end;
drop i;
datalines;
05JUL94 3196 3507 4050 3215 3583 3617 3789 3180 3505 3454
05JUL94 3417 3199 3613 3384 3475 3316 3556 3607 3364 3721
06JUL94 3390 3562 3413 3193 3635 3179 3348 3199 3413 3562
06JUL94 3428 3320 3745 3426 3849 3256 3841 3575 3752 3347
07JUL94 3478 3465 3445 3383 3684 3304 3398 3578 3348 3369
07JUL94 3670 3614 3307 3595 3448 3304 3385 3499 3781 3711
08JUL94 3448 3045 3446 3620 3466 3533 3590 3070 3499 3457
08JUL94 3411 3350 3417 3629 3400 3381 3309 3608 3438 3567
11JUL94 3568 2968 3514 3465 3175 3358 3460 3851 3845 2983
11JUL94 3410 3274 3590 3527 3509 3284 3457 3729 3916 3633
12JUL94 3153 3408 3741 3203 3047 3580 3571 3579 3602 3335
12JUL94 3494 3662 3586 3628 3881 3443 3456 3593 3827 3573
13JUL94 3594 3711 3369 3341 3611 3496 3554 3400 3295 3002
13JUL94 3495 3368 3726 3738 3250 3632 3415 3591 3787 3478
14JUL94 3482 3546 3196 3379 3559 3235 3549 3445 3413 3859
14JUL94 3330 3465 3994 3362 3309 3781 3211 3550 3637 3626
15JUL94 3152 3269 3431 3438 3575 3476 3115 3146 3731 3171
15JUL94 3206 3140 3562 3592 3722 3421 3471 3621 3361 3370
18JUL94 3421 3381 4040 3467 3475 3285 3619 3325 3317 3472
18JUL94 3296 3501 3366 3492 3367 3619 3550 3263 3355 3510
;
run;

 

It works perfect. The output data is like:

05JUL94 3196  

05JUL94 3507

05JUL94 4050

         ...

18JUL94 3296

 

 

Now, suppose i already have the data in a table and I want the same result. 

 

My data is:

data Turbine;
input Day $ jo ja ja lq le lr tl yl k5 k4;
datalines;
05JUL94 3196 3507 4050 3215 3583 3617 3789 3180 3505 3454
05JUL94 3417 3199 3613 3384 3475 3316 3556 3607 3364 3721
06JUL94 3390 3562 3413 3193 3635 3179 3348 3199 3413 3562
06JUL94 3428 3320 3745 3426 3849 3256 3841 3575 3752 3347
07JUL94 3478 3465 3445 3383 3684 3304 3398 3578 3348 3369
07JUL94 3670 3614 3307 3595 3448 3304 3385 3499 3781 3711
08JUL94 3448 3045 3446 3620 3466 3533 3590 3070 3499 3457
08JUL94 3411 3350 3417 3629 3400 3381 3309 3608 3438 3567
11JUL94 3568 2968 3514 3465 3175 3358 3460 3851 3845 2983
11JUL94 3410 3274 3590 3527 3509 3284 3457 3729 3916 3633
12JUL94 3153 3408 3741 3203 3047 3580 3571 3579 3602 3335
12JUL94 3494 3662 3586 3628 3881 3443 3456 3593 3827 3573
13JUL94 3594 3711 3369 3341 3611 3496 3554 3400 3295 3002
13JUL94 3495 3368 3726 3738 3250 3632 3415 3591 3787 3478
14JUL94 3482 3546 3196 3379 3559 3235 3549 3445 3413 3859
14JUL94 3330 3465 3994 3362 3309 3781 3211 3550 3637 3626
15JUL94 3152 3269 3431 3438 3575 3476 3115 3146 3731 3171
15JUL94 3206 3140 3562 3592 3722 3421 3471 3621 3361 3370
18JUL94 3421 3381 4040 3467 3475 3285 3619 3325 3317 3472
18JUL94 3296 3501 3366 3492 3367 3619 3550 3263 3355 3510
;
run;

 

I tried that code: It didnt work. 

 

data t2;
set Turbine;
do i=1 to 10;
end;
drop i;
run;


Accepted Solutions
Solution
‎10-29-2016 01:12 PM
Super User
Posts: 17,775

Re: drop data

This is called transposing your data. 

In this case from wide to long. 

You can use a data step step with an array

 http://www.ats.ucla.edu/stat/sas/modules/wtol_transpose.htm

 

 

or you can use PROC TRANSPOSE

http://www.ats.ucla.edu/stat/sas/modules/wtol_transpose.htm

View solution in original post


All Replies
Solution
‎10-29-2016 01:12 PM
Super User
Posts: 17,775

Re: drop data

This is called transposing your data. 

In this case from wide to long. 

You can use a data step step with an array

 http://www.ats.ucla.edu/stat/sas/modules/wtol_transpose.htm

 

 

or you can use PROC TRANSPOSE

http://www.ats.ucla.edu/stat/sas/modules/wtol_transpose.htm

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 226 views
  • 1 like
  • 2 in conversation