<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Transposed data in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362139#M64530</link>
    <description>Here you go:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;2372 Filename three 'G:\threeone.dat';&lt;BR /&gt;2373 data have;&lt;BR /&gt;2374 infile three expandtabs;&lt;BR /&gt;2375 input TIME_M $ SYM_ROOT $ SIZE PRICE TIME2;&lt;BR /&gt;2376 run;&lt;BR /&gt;&lt;BR /&gt;NOTE: The infile THREE is:&lt;BR /&gt;Filename=G:\threeone.dat,&lt;BR /&gt;RECFM=V,LRECL=32767,File Size (bytes)=4860534,&lt;BR /&gt;Last Modified=26May2017:12:52:06,&lt;BR /&gt;Create Time=25May2017:23:18:31&lt;BR /&gt;&lt;BR /&gt;NOTE: 179219 records were read from the infile THREE.&lt;BR /&gt;The minimum record length was 19.&lt;BR /&gt;The maximum record length was 30.&lt;BR /&gt;NOTE: The data set WORK.HAVE has 179219 observations and 5 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.18 seconds&lt;BR /&gt;cpu time 0.15 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;2377&lt;BR /&gt;2378 proc sort data=have out=need nodupkey;&lt;BR /&gt;2379 by time_m sym_root;&lt;BR /&gt;2380 run;&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 179219 observations read from the data set WORK.HAVE.&lt;BR /&gt;NOTE: 13934 observations with duplicate key values were deleted.&lt;BR /&gt;NOTE: The data set WORK.NEED has 165285 observations and 5 variables.&lt;BR /&gt;NOTE: PROCEDURE SORT used (Total process time):&lt;BR /&gt;real time 0.11 seconds&lt;BR /&gt;cpu time 0.17 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;2381 %macro transpose(libname_in=,&lt;BR /&gt;2382 libname_out=,&lt;BR /&gt;2383 data= have,&lt;BR /&gt;2384 out= need,&lt;BR /&gt;2385 by=,&lt;BR /&gt;2386 prefix=,&lt;BR /&gt;2387 var=,&lt;BR /&gt;2388 autovars=,&lt;BR /&gt;2389 id=,&lt;BR /&gt;2390 descendingid=,&lt;BR /&gt;2391 var_first=,&lt;BR /&gt;2392 format=,&lt;BR /&gt;2393 delimiter=,&lt;BR /&gt;2394 copy=,&lt;BR /&gt;2395 drop=,&lt;BR /&gt;2396 sort=,&lt;BR /&gt;2397 sort_options=,&lt;BR /&gt;2398 use_varname=,&lt;BR /&gt;2399 preloadfmt=,&lt;BR /&gt;2400 guessingrows=,&lt;BR /&gt;2401 newid=);&lt;BR /&gt;2402&lt;BR /&gt;2403 /*Check whether the data and out parameters contain one or two-level filenames*/&lt;BR /&gt;2404 %let lp=%sysfunc(findc(%superq(data),%str(%()));&lt;BR /&gt;2405 %if &amp;amp;lp. %then %do;&lt;BR /&gt;2406 %let rp=%sysfunc(findc(%superq(data),%str(%)),b));&lt;BR /&gt;2407 %let dsoptions=%qsysfunc(substrn(%nrstr(%superq(data)),&amp;amp;lp+1,&amp;amp;rp-&amp;amp;lp-1));&lt;BR /&gt;2408 %let data=%sysfunc(substrn(%nrstr(%superq(data)),1,%eval(&amp;amp;lp-1)));&lt;BR /&gt;2409 %end;&lt;BR /&gt;2410 %else %let dsoptions=;&lt;BR /&gt;2411 %if %sysfunc(countw(&amp;amp;data.)) eq 2 %then %do;&lt;BR /&gt;2412 %let libname_in=%scan(&amp;amp;data.,1);&lt;BR /&gt;2413 %let data=%scan(&amp;amp;data.,2);&lt;BR /&gt;2414 %end;&lt;BR /&gt;2415 %else %if %length(&amp;amp;libname_in.) eq 0 %then %do;&lt;BR /&gt;2416 %let libname_in=work;&lt;BR /&gt;2417 %end;&lt;BR /&gt;2418&lt;BR /&gt;2419 %if %sysfunc(countw(&amp;amp;out.)) eq 2 %then %do;&lt;BR /&gt;2420 %let libname_out=%scan(&amp;amp;out.,1);&lt;BR /&gt;2421 %let out=%scan(&amp;amp;out.,2);&lt;BR /&gt;2422 %end;&lt;BR /&gt;2423 %else %if %length(&amp;amp;libname_out.) eq 0 %then %do;&lt;BR /&gt;2424 %let libname_out=work;&lt;BR /&gt;2425 %end;&lt;BR /&gt;2426&lt;BR /&gt;2427 %if %length(&amp;amp;newid.) eq 0 %then %do;&lt;BR /&gt;2428 %let newid=row;&lt;BR /&gt;2429 %end;&lt;BR /&gt;2430&lt;BR /&gt;2431 /*obtain last by variable*/&lt;BR /&gt;2432 %if %length(&amp;amp;by.) gt 0 %then %do;&lt;BR /&gt;2433 %let lastby=%scan(&amp;amp;by.,-1);&lt;BR /&gt;2434 %end;&lt;BR /&gt;2435 %else %do;&lt;BR /&gt;2436 %let lastby=;&lt;BR /&gt;2437 %end;&lt;BR /&gt;2438&lt;BR /&gt;2439 /*Create macro variable to contain a list of variables to be copied*/&lt;BR /&gt;2440 %let to_copy=;&lt;BR /&gt;2441 %if %length(&amp;amp;copy.) gt 0 %then %do;&lt;BR /&gt;2442 data t_e_m_p;&lt;BR /&gt;2443 set &amp;amp;libname_in..&amp;amp;data. (obs=1 keep=&amp;amp;copy.);&lt;BR /&gt;2444 run;&lt;BR /&gt;2445&lt;BR /&gt;2446 proc sql noprint;&lt;BR /&gt;2447 select name&lt;BR /&gt;2448 into :to_copy separated by " "&lt;BR /&gt;2449 from dictionary.columns&lt;BR /&gt;2450 where libname="WORK" and&lt;BR /&gt;2451 memname="T_E_M_P"&lt;BR /&gt;2452 ;&lt;BR /&gt;2453 quit;&lt;BR /&gt;2454 %end;&lt;BR /&gt;2455&lt;BR /&gt;2456 /*Populate var parameter in the event it has a null value*/&lt;BR /&gt;2457 %if %length(&amp;amp;var.) eq 0 %then %do;&lt;BR /&gt;2458 data t_e_m_p;&lt;BR /&gt;2459 set &amp;amp;libname_in..&amp;amp;data. (obs=1 drop=&amp;amp;by. &amp;amp;id. &amp;amp;copy.);&lt;BR /&gt;2460 run;&lt;BR /&gt;2461&lt;BR /&gt;2462 proc sql noprint;&lt;BR /&gt;2463 select name&lt;BR /&gt;2464 into :var separated by " "&lt;BR /&gt;2465 from dictionary.columns&lt;BR /&gt;2466 where libname="WORK" and&lt;BR /&gt;2467 memname="T_E_M_P"&lt;BR /&gt;2468 %if %sysfunc(upcase("&amp;amp;autovars.")) eq "CHAR" %then %do;&lt;BR /&gt;2469 and type="char"&lt;BR /&gt;2470 %end;&lt;BR /&gt;2471 %else %if %sysfunc(upcase("&amp;amp;autovars.")) ne "ALL" %then %do;&lt;BR /&gt;2472 and type="num"&lt;BR /&gt;2473 %end;&lt;BR /&gt;2474 ;&lt;BR /&gt;2475 quit;&lt;BR /&gt;2476 %end;&lt;BR /&gt;2477&lt;BR /&gt;2478 /*Initialize macro variables*/&lt;BR /&gt;2479 %let vars_char=;&lt;BR /&gt;2480 %let varlist_char=;&lt;BR /&gt;2481 %let vars_num=;&lt;BR /&gt;2482 %let varlist_num=;&lt;BR /&gt;2483 %let formats_char=;&lt;BR /&gt;2484 %let format_char=;&lt;BR /&gt;2485 %let formats_num=;&lt;BR /&gt;2486 %let format_num=;&lt;BR /&gt;2487&lt;BR /&gt;2488 /*Create file t_e_m_p to contain one record with all var variables*/&lt;BR /&gt;2489 data t_e_m_p;&lt;BR /&gt;2490 set &amp;amp;libname_in..&amp;amp;data. (obs=1 keep=&amp;amp;var.);&lt;BR /&gt;2491 run;&lt;BR /&gt;2492&lt;BR /&gt;2493 /*Create macro variables containing untransposed var names and formats*/&lt;BR /&gt;2494 proc sql noprint;&lt;BR /&gt;2495 select name, case&lt;BR /&gt;2496 when missing(format) then " $"||strip(put(length,5.))||'.'&lt;BR /&gt;2497 else strip(format)&lt;BR /&gt;2498 end&lt;BR /&gt;2499 into :vars_char separated by " ",&lt;BR /&gt;2500 :formats_char separated by "~"&lt;BR /&gt;2501 from dictionary.columns&lt;BR /&gt;2502 where libname="WORK" and&lt;BR /&gt;2503 memname="T_E_M_P" and&lt;BR /&gt;2504 type="char"&lt;BR /&gt;2505 ;&lt;BR /&gt;2506 select name, case&lt;BR /&gt;2507 when missing(format) then "best12."&lt;BR /&gt;2508 else strip(format)&lt;BR /&gt;2509 end&lt;BR /&gt;2510 into :vars_num separated by " ",&lt;BR /&gt;2511 :formats_num separated by "~"&lt;BR /&gt;2512 from dictionary.columns&lt;BR /&gt;2513 where libname="WORK" and&lt;BR /&gt;2514 memname="T_E_M_P" and&lt;BR /&gt;2515 type="num"&lt;BR /&gt;2516 ;&lt;BR /&gt;2517 select name&lt;BR /&gt;2518 into :vars_all separated by " "&lt;BR /&gt;2519 from dictionary.columns&lt;BR /&gt;2520 where libname="WORK" and&lt;BR /&gt;2521 memname="T_E_M_P"&lt;BR /&gt;2522 ;&lt;BR /&gt;2523 quit;&lt;BR /&gt;2524&lt;BR /&gt;2525 /*If sort parameter has a value of YES, create a sorted temporary data file*/&lt;BR /&gt;2526 %if %sysfunc(upcase("&amp;amp;sort.")) eq "YES" %then %do;&lt;BR /&gt;2527 %let notsorted=;&lt;BR /&gt;2528 proc sort data=&amp;amp;libname_in..&amp;amp;data.&lt;BR /&gt;2529 (&lt;BR /&gt;2530 keep=&amp;amp;by. &amp;amp;id. &amp;amp;vars_char. &amp;amp;vars_num. &amp;amp;to_copy.&lt;BR /&gt;2531 &amp;amp;dsoptions.&lt;BR /&gt;2532 )&lt;BR /&gt;2533 out=t_e_m_p &amp;amp;sort_options. noequals;&lt;BR /&gt;2534 by &amp;amp;by.;&lt;BR /&gt;2535 run;&lt;BR /&gt;2536 %let data=t_e_m_p;&lt;BR /&gt;2537 %let libname_in=work;&lt;BR /&gt;2538 %end;&lt;BR /&gt;2539 %else %do;&lt;BR /&gt;2540 %let notsorted=notsorted;&lt;BR /&gt;2541 %end;&lt;BR /&gt;2542&lt;BR /&gt;2543 /*if no id parameter is present, create one from &amp;amp;newid.*/&lt;BR /&gt;2544 %if %length(&amp;amp;id.) eq 0 %then %do;&lt;BR /&gt;2545 data t_e_m_p;&lt;BR /&gt;2546 set &amp;amp;libname_in..&amp;amp;data.;&lt;BR /&gt;2547 by &amp;amp;by.;&lt;BR /&gt;2548 if first.&amp;amp;lastby then &amp;amp;newid.=1;&lt;BR /&gt;2549 else &amp;amp;newid+1;&lt;BR /&gt;2550 run;&lt;BR /&gt;2551 %let id=&amp;amp;newid.;&lt;BR /&gt;2552 %let data=t_e_m_p;&lt;BR /&gt;2553 %let libname_in=work;&lt;BR /&gt;2554 %end;&lt;BR /&gt;2555&lt;BR /&gt;2556 /*Ensure guessingrows parameter contains a value*/&lt;BR /&gt;2557 %if %length(&amp;amp;guessingrows.) eq 0 %then %do;&lt;BR /&gt;2558 %let guessingrows=%sysfunc(constant(EXACTINT));&lt;BR /&gt;2559 %end;&lt;BR /&gt;2560&lt;BR /&gt;2561 /*Ensure a format is assigned to an id variable*/&lt;BR /&gt;2562 %if %length(&amp;amp;id.) gt 0 %then %do;&lt;BR /&gt;2563 proc sql noprint;&lt;BR /&gt;2564 select type,length,%sysfunc(strip(format))&lt;BR /&gt;2565 into :tr_macro_type, :tr_macro_len, :tr_macro_format&lt;BR /&gt;2566 from dictionary.columns&lt;BR /&gt;2567 where libname="%sysfunc(upcase(&amp;amp;libname_in.))" and&lt;BR /&gt;2568 memname="%sysfunc(upcase(&amp;amp;data.))" and&lt;BR /&gt;2569 upcase(name)="%sysfunc(upcase(&amp;amp;id.))"&lt;BR /&gt;2570 ;&lt;BR /&gt;2571 quit;&lt;BR /&gt;2572&lt;BR /&gt;2573 %if %length(&amp;amp;format.) eq 0 %then %do;&lt;BR /&gt;2574 %let optsave=%sysfunc(getoption(missing),$quote.);&lt;BR /&gt;2575 options missing=.;&lt;BR /&gt;2576 %if %length(&amp;amp;tr_macro_format.) gt 0 %then %do;&lt;BR /&gt;2577 %let format=&amp;amp;tr_macro_format.;&lt;BR /&gt;2578 %end;&lt;BR /&gt;2579 %else %if "&amp;amp;tr_macro_type." eq "num " %then %do;&lt;BR /&gt;2580 %let format=%sysfunc(catt(best,&amp;amp;tr_macro_len.,%str(.)));&lt;BR /&gt;2581 %end;&lt;BR /&gt;2582 %else %do;&lt;BR /&gt;2583 %let format=%sysfunc(catt($,&amp;amp;tr_macro_len.,%str(.)));&lt;BR /&gt;2584 %end;&lt;BR /&gt;2585 options missing=&amp;amp;optsave;&lt;BR /&gt;2586 %end;&lt;BR /&gt;2587 %end;&lt;BR /&gt;2588&lt;BR /&gt;2589 /*Create macro variables containing ordered lists of the requested transposed variable&lt;BR /&gt;2590 names for character (varlist_char) and numeric (varlist_num) var variables */&lt;BR /&gt;2591 %if %length(&amp;amp;preloadfmt.) gt 0 %then %do;&lt;BR /&gt;2592 %if %sysfunc(countw(&amp;amp;preloadfmt.)) eq 1 %then %do;&lt;BR /&gt;2593 %let preloadfmt=&amp;amp;libname_in..&amp;amp;preloadfmt.;&lt;BR /&gt;2594 %end;&lt;BR /&gt;2595 %end;&lt;BR /&gt;2596 %else %do;&lt;BR /&gt;2597 %if %sysfunc(upcase("&amp;amp;sort.")) eq "YES" %then&lt;BR /&gt;2598 %let dsoptions=;&lt;BR /&gt;2599 proc freq data=&amp;amp;libname_in..&amp;amp;data. (obs=&amp;amp;guessingrows. keep=&amp;amp;id. &amp;amp;dsoptions.)&lt;BR /&gt;2600 noprint;&lt;BR /&gt;2601 tables &amp;amp;id./out=_for_format (keep=&amp;amp;id.);&lt;BR /&gt;2602 run;&lt;BR /&gt;2603 %if %sysfunc(upcase("&amp;amp;descendingid.")) eq "YES" %then %do;&lt;BR /&gt;2604 proc sort data=_for_format;&lt;BR /&gt;2605 by descending &amp;amp;id;&lt;BR /&gt;2606 run;&lt;BR /&gt;2607 %end;&lt;BR /&gt;2608 data _for_format;&lt;BR /&gt;2609 set _for_format;&lt;BR /&gt;2610 order=_n_;&lt;BR /&gt;2611 run;&lt;BR /&gt;2612 %end;&lt;BR /&gt;2613&lt;BR /&gt;2614 proc sql noprint;&lt;BR /&gt;2615 %do i=1 %to 2;&lt;BR /&gt;2616 %if &amp;amp;i. eq 1 %then %let i_type=char;&lt;BR /&gt;2617 %else %let i_type=num;&lt;BR /&gt;2618 %if %length(&amp;amp;&amp;amp;vars_&amp;amp;i_type.) gt 0 %then %do;&lt;BR /&gt;2619 select distinct&lt;BR /&gt;2620 %do j=1 %to 2;&lt;BR /&gt;2621 %if &amp;amp;j. eq 1 %then %let j_type=;&lt;BR /&gt;2622 %else %let j_type=format;&lt;BR /&gt;2623 %do k=1 %to %sysfunc(countw(&amp;amp;&amp;amp;vars_&amp;amp;i_type.));&lt;BR /&gt;2624 "&amp;amp;j_type. "||cats("&amp;amp;prefix.",&lt;BR /&gt;2625 %if %sysfunc(upcase("&amp;amp;var_first.")) eq "NO" %then %do;&lt;BR /&gt;2626 put(&amp;amp;id.,&amp;amp;format),"&amp;amp;delimiter."&lt;BR /&gt;2627 %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;2628 ,scan("&amp;amp;&amp;amp;vars_&amp;amp;i_type.",&amp;amp;k.);&lt;BR /&gt;2629 %end;&lt;BR /&gt;2630 %else %do;&lt;BR /&gt;2631 %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;2632 scan("&amp;amp;&amp;amp;vars_&amp;amp;i_type.",&amp;amp;k.),;&lt;BR /&gt;2633 "&amp;amp;delimiter.",put(&amp;amp;id.,&amp;amp;format)&lt;BR /&gt;2634 %end;&lt;BR /&gt;2635 )&lt;BR /&gt;2636 %if &amp;amp;j. eq 2 %then&lt;BR /&gt;2637 ||" "||cats(scan("&amp;amp;&amp;amp;formats_&amp;amp;i_type.",&amp;amp;k.,"~"),";");&lt;BR /&gt;2638 %if &amp;amp;k. lt %sysfunc(countw(&amp;amp;&amp;amp;vars_&amp;amp;i_type.)) %then ||;&lt;BR /&gt;2639 %else ,;&lt;BR /&gt;2640 %end;&lt;BR /&gt;2641 %end;&lt;BR /&gt;2642 %if "&amp;amp;tr_macro_type." eq "num " %then &amp;amp;id. format=best12.;&lt;BR /&gt;2643 %else &amp;amp;id.;&lt;BR /&gt;2644 ,order&lt;BR /&gt;2645 into :varlist_&amp;amp;i_type. separated by " ",&lt;BR /&gt;2646 :format_&amp;amp;i_type. separated by " ",&lt;BR /&gt;2647 :idlist separated by " ",&lt;BR /&gt;2648 :idorder separated by " "&lt;BR /&gt;2649 %if %length(&amp;amp;preloadfmt.) gt 0 %then from &amp;amp;preloadfmt.;&lt;BR /&gt;2650 %else from _for_format;&lt;BR /&gt;2651 order by order&lt;BR /&gt;2652 ;&lt;BR /&gt;2653 %let num_numlabels=&amp;amp;sqlobs.;&lt;BR /&gt;2654 %end;&lt;BR /&gt;2655 %end;&lt;BR /&gt;2656 quit;&lt;BR /&gt;2657&lt;BR /&gt;2658 proc sql noprint;&lt;BR /&gt;2659 select distinct&lt;BR /&gt;2660 %let j_type=;&lt;BR /&gt;2661 %do k=1 %to %sysfunc(countw(&amp;amp;&amp;amp;vars_all.));&lt;BR /&gt;2662 "&amp;amp;j_type. "||cats("&amp;amp;prefix.",&lt;BR /&gt;2663&lt;BR /&gt;2664 %if %sysfunc(upcase("&amp;amp;var_first.")) eq "NO" %then %do;&lt;BR /&gt;2665 put(&amp;amp;id.,&amp;amp;format),"&amp;amp;delimiter.",&lt;BR /&gt;2666 %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;2667 scan("&amp;amp;&amp;amp;vars_all.",&amp;amp;k.);&lt;BR /&gt;2668 )&lt;BR /&gt;2669 %end;&lt;BR /&gt;2670 %else %do;&lt;BR /&gt;2671 %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;2672 scan("&amp;amp;&amp;amp;vars_all.",&amp;amp;k.),;&lt;BR /&gt;2673 "&amp;amp;delimiter.",put(&amp;amp;id.,&amp;amp;format))&lt;BR /&gt;2674 %end;&lt;BR /&gt;2675 %if &amp;amp;k. lt %sysfunc(countw(&amp;amp;&amp;amp;vars_all.)) %then ||;&lt;BR /&gt;2676 %else ,;&lt;BR /&gt;2677 %end;&lt;BR /&gt;2678 order&lt;BR /&gt;2679 into :varlist_all separated by " ",&lt;BR /&gt;2680 :idorder separated by " "&lt;BR /&gt;2681 %if %length(&amp;amp;preloadfmt.) gt 0 %then from &amp;amp;preloadfmt.;&lt;BR /&gt;2682 %else from _for_format;&lt;BR /&gt;2683 order by order&lt;BR /&gt;2684 ;&lt;BR /&gt;2685 quit;&lt;BR /&gt;2686&lt;BR /&gt;2687 /*Create a format that will be used to assign values to the transposed variables*/&lt;BR /&gt;2688 data _for_format;&lt;BR /&gt;2689 %if %length(&amp;amp;preloadfmt.) gt 0 %then set &amp;amp;preloadfmt. (rename=(&amp;amp;id.=start));&lt;BR /&gt;2690 %else set _for_format (rename=(&amp;amp;id.=start));&lt;BR /&gt;2691 ;&lt;BR /&gt;2692 %if "&amp;amp;tr_macro_type." eq "num " %then retain fmtname "labelfmt" type "N";&lt;BR /&gt;2693 %else retain fmtname "$labelfmt" type "C";&lt;BR /&gt;2694 ;&lt;BR /&gt;2695 label=&lt;BR /&gt;2696 %if %length(&amp;amp;preloadfmt.) eq 0 %then _n_-1;&lt;BR /&gt;2697 %else order-1;&lt;BR /&gt;2698 ;&lt;BR /&gt;2699 run;&lt;BR /&gt;2700&lt;BR /&gt;2701 proc format cntlin = _for_format;&lt;BR /&gt;2702 run ;&lt;BR /&gt;2703&lt;BR /&gt;2704 /*Create and run the datastep that does the transposition*/&lt;BR /&gt;2705 data &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;2706 set &amp;amp;libname_in..&amp;amp;data. (keep=&amp;amp;by. &amp;amp;id.&lt;BR /&gt;2707 %do i=1 %to %sysfunc(countw("&amp;amp;vars_char."));&lt;BR /&gt;2708 %scan(&amp;amp;vars_char.,&amp;amp;i.)&lt;BR /&gt;2709 %end;&lt;BR /&gt;2710 %do i=1 %to %sysfunc(countw("&amp;amp;vars_num."));&lt;BR /&gt;2711 %scan(&amp;amp;vars_num.,&amp;amp;i.)&lt;BR /&gt;2712 %end;&lt;BR /&gt;2713 %do i=1 %to %sysfunc(countw("&amp;amp;to_copy."));&lt;BR /&gt;2714 %scan(&amp;amp;to_copy.,&amp;amp;i.)&lt;BR /&gt;2715 %end;&lt;BR /&gt;2716 &amp;amp;dsoptions.&lt;BR /&gt;2717 );&lt;BR /&gt;2718 by &amp;amp;by. &amp;amp;notsorted.;&lt;BR /&gt;2719 &amp;amp;format_char. &amp;amp;format_num.&lt;BR /&gt;2720 %if %length(&amp;amp;vars_char.) gt 0 %then %do;&lt;BR /&gt;2721 array want_char(*) $&lt;BR /&gt;2722 %do i=1 %to %eval(&amp;amp;num_numlabels.*%sysfunc(countw("&amp;amp;vars_char.")));&lt;BR /&gt;2723 %scan(&amp;amp;varlist_char.,&amp;amp;i.)&lt;BR /&gt;2724 %end;&lt;BR /&gt;2725 ;&lt;BR /&gt;2726 array have_char(*) $ &amp;amp;vars_char.;&lt;BR /&gt;2727 retain want_char;&lt;BR /&gt;2728 if first.&amp;amp;lastby. then call missing(of want_char(*));&lt;BR /&gt;2729 ___nchar=put(&amp;amp;id.,labelfmt.)*dim(have_char);&lt;BR /&gt;2730 do ___i=1 to dim(have_char);&lt;BR /&gt;2731 want_char(___nchar+___i)=have_char(___i);&lt;BR /&gt;2732 end;&lt;BR /&gt;2733 %end;&lt;BR /&gt;2734 %if %length(&amp;amp;vars_num.) gt 0 %then %do;&lt;BR /&gt;2735 array want_num(*)&lt;BR /&gt;2736 %do i=1 %to %eval(&amp;amp;num_numlabels.*%sysfunc(countw("&amp;amp;vars_num.")));&lt;BR /&gt;2737 %scan(&amp;amp;varlist_num.,&amp;amp;i.)&lt;BR /&gt;2738 %end;&lt;BR /&gt;2739 ;&lt;BR /&gt;2740 array have_num(*) &amp;amp;vars_num.;&lt;BR /&gt;2741 retain want_num;&lt;BR /&gt;2742 if first.&amp;amp;lastby. then call missing(of want_num(*));&lt;BR /&gt;2743 ___nnum=put(&amp;amp;id.,labelfmt.)*dim(have_num);&lt;BR /&gt;2744 do ___i=1 to dim(have_num);&lt;BR /&gt;2745 want_num(___nnum+___i)=have_num(___i);&lt;BR /&gt;2746 end;&lt;BR /&gt;2747 %end;&lt;BR /&gt;2748 drop &amp;amp;id. ___: &amp;amp;var. &amp;amp;drop.;&lt;BR /&gt;2749 if last.&amp;amp;lastby. then output;&lt;BR /&gt;2750 run;&lt;BR /&gt;2751&lt;BR /&gt;2752 data &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;2753 retain &amp;amp;by. &amp;amp;to_copy. &amp;amp;varlist_all.;&lt;BR /&gt;2754 set &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;2755 run;&lt;BR /&gt;2756&lt;BR /&gt;2757 /*Delete all temporary files*/&lt;BR /&gt;2758 proc delete data=work.t_e_m_p work._for_format;&lt;BR /&gt;2759 run;&lt;BR /&gt;2760&lt;BR /&gt;2761 %mend transpose;&lt;BR /&gt;2762 options NOQUOTELENMAX;&lt;BR /&gt;2763 proc sort data=have out=need nodupkey;&lt;BR /&gt;2764 by time_m sym_root;&lt;BR /&gt;2765 run;&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 179219 observations read from the data set WORK.HAVE.&lt;BR /&gt;NOTE: 13934 observations with duplicate key values were deleted.&lt;BR /&gt;NOTE: The data set WORK.NEED has 165285 observations and 5 variables.&lt;BR /&gt;NOTE: PROCEDURE SORT used (Total process time):&lt;BR /&gt;real time 0.08 seconds&lt;BR /&gt;cpu time 0.21 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;2766&lt;BR /&gt;2767 %transpose(data=need, out=want, by=time_m, id=sym_root,&lt;BR /&gt;2768 delimiter=_,var=price size)&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 1 observations read from the data set WORK.NEED.&lt;BR /&gt;NOTE: The data set WORK.T_E_M_P has 1 observations and 2 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.03 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: No rows were selected.&lt;BR /&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 165285 observations read from the data set WORK.NEED.&lt;BR /&gt;NOTE: The data set WORK._FOR_FORMAT has 471 observations and 1 variables.&lt;BR /&gt;NOTE: PROCEDURE FREQ used (Total process time):&lt;BR /&gt;real time 0.05 seconds&lt;BR /&gt;cpu time 0.04 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 471 observations read from the data set WORK._FOR_FORMAT.&lt;BR /&gt;NOTE: The data set WORK._FOR_FORMAT has 471 observations and 2 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;BR /&gt;real time 0.03 seconds&lt;BR /&gt;cpu time 0.04 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 471 observations read from the data set WORK._FOR_FORMAT.&lt;BR /&gt;NOTE: The data set WORK._FOR_FORMAT has 471 observations and 5 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;ERROR: These two ranges overlap: LOW-LOW and A-A (fuzz=0).&lt;BR /&gt;&lt;BR /&gt;WARNING: RUN statement ignored due to previous errors. Submit QUIT; to terminate the procedure.&lt;BR /&gt;NOTE: PROCEDURE FORMAT used (Total process time):&lt;BR /&gt;real time 0.00 seconds&lt;BR /&gt;cpu time 0.00 seconds&lt;BR /&gt;&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;NOTE: There were 471 observations read from the data set WORK._FOR_FORMAT.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: Line generated by the invoked macro "TRANSPOSE".&lt;BR /&gt;1997 ; array have_num(*) &amp;amp;vars_num.; retain want_num; if first.&amp;amp;lastby. then&lt;BR /&gt;1997! call missing(of want_num(*)); ___nnum=put(&amp;amp;id.,labelfmt.)*dim(have_num); do&lt;BR /&gt;---------&lt;BR /&gt;48&lt;BR /&gt;1997! ___i=1 to dim(have_num); want_num(___nnum+___i)=have_num(___i); end;&lt;BR /&gt;&lt;BR /&gt;ERROR 48-59: The format $LABELFMT was not found or could not be loaded.&lt;BR /&gt;&lt;BR /&gt;NOTE: Character values have been converted to numeric values at the places given by:&lt;BR /&gt;(Line):(Column).&lt;BR /&gt;1997:132&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.WANT may be incomplete. When this step was stopped there were 0&lt;BR /&gt;observations and 943 variables.&lt;BR /&gt;WARNING: Data set WORK.WANT was not replaced because this step was stopped.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.70 seconds&lt;BR /&gt;cpu time 0.70 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: Variable time_m is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_A is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_A is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AAPL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AAPL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ABC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ABC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ABT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ABT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ADBE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ADBE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ADI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ADI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ADM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ADM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ADP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ADP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ADSK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ADSK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AEE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AEE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AEP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AEP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AES is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AES is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AET is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AET is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AFL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AFL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AGN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AGN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AIG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AIG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AIV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AIV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AIZ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AIZ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AKAM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AKAM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AKS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AKS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ALL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ALL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ALTR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ALTR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AMAT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AMAT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AMD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AMD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AMGN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AMGN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AMP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AMP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AMT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AMT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AMZN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AMZN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ANF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ANF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AON is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AON is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_APA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_APA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_APC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_APC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_APD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_APD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_APH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_APH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_APOL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_APOL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ARG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ARG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ATI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ATI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AVB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AVB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AVP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AVP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AVY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AVY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AXP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AXP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AYE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AYE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_AZO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_AZO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BAC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BAC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BAX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BAX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BBBY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BBBY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BBT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BBT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BBY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BBY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BCR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BCR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BDX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BDX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BEN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BEN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BHI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BHI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BIG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BIG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BIIB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BIIB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BLL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BLL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BMS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BMS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BMY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BMY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BRCM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BRCM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BSX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BSX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BTU is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BTU is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_BXP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_BXP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_C is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_C is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CAG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CAG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CAH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CAH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CAM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CAM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CAT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CAT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CBG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CBG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CBS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CBS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CCE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CCE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CCL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CCL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CEG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CEG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CELG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CELG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CEPH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CEPH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CFN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CFN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CHK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CHK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CHRW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CHRW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CINF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CINF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CLF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CLF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CLX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CLX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CMA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CMA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CME is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CME is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CMI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CMI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CMS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CMS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CNP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CNP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CNX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CNX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_COF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_COF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_COG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_COG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_COH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_COH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_COL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_COL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_COP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_COP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_COST is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_COST is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CPB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CPB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CPWR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CPWR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CRM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CRM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CSC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CSC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CSCO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CSCO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CSX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CSX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CTAS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CTAS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CTL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CTL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CTSH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CTSH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CTXS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CTXS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CVH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CVH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CVS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CVS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_CVX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_CVX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_D is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_D is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DELL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DELL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DFS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DFS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DGX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DGX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DHI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DHI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DHR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DHR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DIS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DIS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DNB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DNB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DNR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DNR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DOV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DOV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DOW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DOW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DPS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DPS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DRI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DRI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DTE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DTE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DTV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DTV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DUK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DUK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DVA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DVA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_DVN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_DVN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EBAY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EBAY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ECL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ECL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ED is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ED is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EFX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EFX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EIX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EIX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EMN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EMN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EMR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EMR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EOG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EOG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EQR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EQR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EQT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EQT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ES is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ES is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ESRX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ESRX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ETFC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ETFC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ETN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ETN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ETR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ETR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EXC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EXC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EXPD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EXPD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_EXPE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_EXPE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_F is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_F is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FAST is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FAST is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FCX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FCX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FDO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FDO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FDX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FDX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FHN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FHN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FII is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FII is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FIS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FIS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FISV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FISV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FITB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FITB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FLIR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FLIR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FLR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FLR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FLS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FLS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FRX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FRX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FSLR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FSLR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FTI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FTI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_FTR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_FTR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GAS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GAS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GENZ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GENZ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GILD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GILD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GIS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GIS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GLW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GLW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GME is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GME is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GNW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GNW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GPC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GPC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GPS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GPS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_GWW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_GWW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HAL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HAL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HAR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HAR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HAS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HAS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HBAN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HBAN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HCBK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HCBK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HCN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HCN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HCP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HCP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HES is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HES is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HIG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HIG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HOG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HOG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HON is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HON is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HOT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HOT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HPQ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HPQ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HRB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HRB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HRL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HRL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HRS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HRS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HSP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HSP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HST is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HST is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_HUM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_HUM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IBM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IBM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ICE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ICE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IFF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IFF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IGT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IGT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IMS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IMS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_INTC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_INTC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_INTU is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_INTU is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IPG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IPG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IRM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IRM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ISRG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ISRG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ITT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ITT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ITW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ITW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_IVZ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_IVZ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JBL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JBL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JCI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JCI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JCP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JCP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JEC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JEC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JNJ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JNJ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JNPR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JNPR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JNS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JNS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JPM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JPM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_JWN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_JWN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_K is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_K is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KEY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KEY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KIM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KIM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KLAC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KLAC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KMB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KMB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_KSS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_KSS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_L is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_L is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LEG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LEG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LEN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LEN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LIFE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LIFE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LLL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LLL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LLTC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LLTC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LLY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LLY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LMT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LMT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LNC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LNC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LOW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LOW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LSI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LSI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LUK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LUK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LUV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LUV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_LXK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_LXK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_M is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_M is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MAR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MAR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MAS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MAS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MAT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MAT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MCD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MCD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MCHP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MCHP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MCK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MCK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MCO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MCO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MDP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MDP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MDT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MDT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MEE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MEE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MET is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MET is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MFE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MFE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MHS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MHS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MIL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MIL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MJN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MJN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MKC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MKC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MMM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MMM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MOLX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MOLX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MON is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MON is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MRK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MRK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MRO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MRO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MSFT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MSFT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MTB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MTB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MU is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MU is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MUR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MUR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MWV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MWV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MWW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MWW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_MYL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_MYL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NAVI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NAVI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NBL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NBL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NBR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NBR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NDAQ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NDAQ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NEM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NEM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NKE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NKE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NOC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NOC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NOV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NOV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NOVL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NOVL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NRG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NRG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NSC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NSC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NSM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NSM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NTAP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NTAP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NTRS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NTRS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NUE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NUE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NVDA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NVDA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NVLS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NVLS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NWL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NWL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NYT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NYT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_NYX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_NYX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ODP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ODP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_OI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_OI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_OKE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_OKE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_OMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_OMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ORCL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ORCL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ORLY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ORLY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_OXY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_OXY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PAYX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PAYX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PBCT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PBCT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PBI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PBI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PCAR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PCAR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PCG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PCG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PCL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PCL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PCLN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PCLN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PCP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PCP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PCS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PCS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PDCO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PDCO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PEG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PEG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PEP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PEP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PFE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PFE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PFG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PFG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PGR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PGR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PHM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PHM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PKI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PKI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PLD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PLD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PLL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PLL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PNC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PNC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PNW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PNW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_POM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_POM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PPG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PPG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PPL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PPL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PRU is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PRU is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PSA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PSA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PTV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PTV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PWR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PWR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_PXD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_PXD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_Q is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_Q is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_QCOM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_QCOM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_QLGC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_QLGC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_R is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_R is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RAI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RAI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RDC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RDC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RHI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RHI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RHT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RHT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ROK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ROK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ROP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ROP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ROST is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ROST is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RRC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RRC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RRD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RRD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RSG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RSG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_RTN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_RTN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_S is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_S is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SBUX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SBUX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SCG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SCG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SCHW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SCHW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SEE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SEE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SHLD is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SHLD is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SHW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SHW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SIAL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SIAL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SII is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SII is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SJM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SJM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SLB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SLB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SNA is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SNA is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SNDK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SNDK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SNI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SNI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SPG is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SPG is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SRCL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SRCL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SRE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SRE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_STI is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_STI is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_STJ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_STJ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_STR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_STR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_STT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_STT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_STZ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_STZ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SUN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SUN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SVU is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SVU is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SWK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SWK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SWN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SWN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SWY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SWY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SYK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SYK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SYMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SYMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_SYY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_SYY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_T is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_T is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TAP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TAP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TDC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TDC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TER is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TER is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TGT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TGT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_THC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_THC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TIE is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TIE is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TIF is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TIF is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TJX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TJX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TLAB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TLAB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TMK is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TMK is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TMO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TMO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TROW is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TROW is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TRV is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TRV is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TSN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TSN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TSO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TSO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TSS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TSS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TWC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TWC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TWX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TWX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TXN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TXN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_TXT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_TXT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_UNH is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_UNH is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_UNM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_UNM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_UNP is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_UNP is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_UPS is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_UPS is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_URBN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_URBN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_USB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_USB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_UTX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_UTX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_V is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_V is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VAR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VAR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VFC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VFC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VLO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VLO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VMC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VMC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VNO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VNO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VRSN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VRSN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VTR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VTR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_VZ is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_VZ is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WAT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WAT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WDC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WDC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WEC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WEC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WFC is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WFC is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WHR is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WHR is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WIN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WIN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WMB is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WMB is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WMT is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WMT is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WU is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WU is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WYN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WYN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_WYNN is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_WYNN is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_X is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_X is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XEL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XEL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XL is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XL is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XLNX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XLNX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XOM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XOM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XRAY is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XRAY is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XRX is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XRX is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_XTO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_XTO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_Y is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_Y is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_YHOO is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_YHOO is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_YUM is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_YUM is uninitialized.&lt;BR /&gt;NOTE: Variable SIZE_ZION is uninitialized.&lt;BR /&gt;NOTE: Variable PRICE_ZION is uninitialized.&lt;BR /&gt;NOTE: There were 0 observations read from the data set WORK.WANT.&lt;BR /&gt;NOTE: The data set WORK.WANT has 0 observations and 0 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;real time 0.89 seconds&lt;BR /&gt;cpu time 0.86 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;NOTE: Deleting WORK.T_E_M_P (memtype=DATA).&lt;BR /&gt;NOTE: Deleting WORK._FOR_FORMAT (memtype=DATA).&lt;BR /&gt;NOTE: PROCEDURE DELETE used (Total process time):&lt;BR /&gt;real time 0.01 seconds&lt;BR /&gt;cpu time 0.01 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Sat, 27 May 2017 03:25:21 GMT</pubDate>
    <dc:creator>kbl</dc:creator>
    <dc:date>2017-05-27T03:25:21Z</dc:date>
    <item>
      <title>Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359108#M64353</link>
      <description>&lt;P&gt;Good afternoon,&lt;BR /&gt;I pulled some TAQ data, and the file is in a .CSV format. I've only kept (and am interested in ) about six variables. The data pulled just fine, but it is listed in a column, with all trades for one company listed, followed by all trades for the next company, etc. I need the file sorted so that i can see all companies that traded at a particular time (along with the number of shares traded). In essence, instead of having vertical data, I want horizontal data. Can you help? I am attaching one of the files so you can see what i mean. Thanks very much for any assistance you can provide.&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 16:47:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359108#M64353</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-16T16:47:14Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359114#M64356</link>
      <description>&lt;P&gt;Can you attach an example showing how you want the resulting file to look?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 17:11:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359114#M64356</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-16T17:11:40Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359122#M64358</link>
      <description>&lt;P&gt;What you're asking for is a report.&amp;nbsp; The data should remain in vertical form.&amp;nbsp; A report might display the data in horizontal form, if that is useful to you.&amp;nbsp; It becomes a question of whether it is worth it to you to learn some programming skills, to be able to produce the report that you want.&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 17:36:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359122#M64358</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-05-16T17:36:07Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359184#M64366</link>
      <description>&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Time&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;AAPL&lt;/TD&gt;&lt;TD&gt;other stocks…&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;price&lt;/TD&gt;&lt;TD&gt;price&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;price&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Art,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your reply.&amp;nbsp; The main shift I want is that I want each company' sym_Root&amp;nbsp; to be a separate column.&amp;nbsp; Time remains the first column.&amp;nbsp; Then column two will be the first company that trades at a given time with the price it traded at for that time.&amp;nbsp; The next column will be the second company and its trading price (if it traded at that time), etc.&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 20:17:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359184#M64366</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-16T20:17:18Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359186#M64367</link>
      <description>&lt;P&gt;Good afternoon,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have programmed before, although it's been a couple of years since i used SAS.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need the tickers (SYM_ROOT) to be in a separate column for each stock with the price at which it is trading for a given time listed under the company ticker.&amp;nbsp; As a result, I don't think it is sufficient to create a report; I think I need to transpose the data.&amp;nbsp; Does that sound right?&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 20:20:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359186#M64367</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-16T20:20:17Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359189#M64369</link>
      <description>&lt;P&gt;What you want to do is easy with proc transpose, but you have some duplicate entries for some companies at the same times. As long as the duplicates are irrelevant, you can get what you want with:&lt;/P&gt;
&lt;PRE&gt;proc sort data=have nodupkey;
  by time_m sym_root;
run;

proc transpose data=have out=want (drop=_:);
  by time_m;
  id sym_root;
  var price;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 20:27:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359189#M64369</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-16T20:27:59Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359211#M64371</link>
      <description>&lt;P&gt;Thanks so much Art!&amp;nbsp; This is exceptionally helpful.&amp;nbsp; Can I trouble you for one more?&amp;nbsp; I was going to do some other calculations in Excel, but I think it will be easier to use SAS for everything.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What changes do I need to make to the program if I want everything that you just sent, plus I want to keep the volume data by company.&amp;nbsp; So, after I have a column for each company's price data, I have a set of columns for each company's volume data?&amp;nbsp; I think there is not a duplicate issue; each time listed represents the last trade that minute for each company's stock, and we only need to sort to the minute (the first four digits), not to the second (the final digit in the time variable) .&amp;nbsp; The data can look something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Time (end of each minute)&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Stock2&lt;/TD&gt;&lt;TD&gt;Stock 3&lt;/TD&gt;&lt;TD&gt;Stock 4&lt;/TD&gt;&lt;TD&gt;Stock 5&lt;/TD&gt;&lt;TD&gt;…&lt;/TD&gt;&lt;TD&gt;Stock 500&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;Stock2&lt;/TD&gt;&lt;TD&gt;Stock 3&lt;/TD&gt;&lt;TD&gt;Stock 4&lt;/TD&gt;&lt;TD&gt;Stock 5&lt;/TD&gt;&lt;TD&gt;…&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;30:46&lt;/TD&gt;&lt;TD&gt;36.5&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;31:58&lt;/TD&gt;&lt;TD&gt;36.445&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;The last trade price for each stock each minute here&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;The corresponding trading volume&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;32:22&lt;/TD&gt;&lt;TD&gt;36.51&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;for each stock&amp;nbsp; for each minute here&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;33:55&lt;/TD&gt;&lt;TD&gt;36.55&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;We&amp;nbsp; have 500 stocks&amp;nbsp; in the index&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;34:36&lt;/TD&gt;&lt;TD&gt;36.575&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;and we&amp;nbsp; need end-of-minute price data here for only 5 days&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;35:57&lt;/TD&gt;&lt;TD&gt;36.57&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;so it should not be too large of a data file&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;36:50&lt;/TD&gt;&lt;TD&gt;36.75&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;37:58&lt;/TD&gt;&lt;TD&gt;36.77&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;38:43&lt;/TD&gt;&lt;TD&gt;36.76&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 16 May 2017 21:35:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359211#M64371</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-16T21:35:20Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359214#M64372</link>
      <description>&lt;P&gt;You can do it with a couple of proc transposes, but I always find the following macro easier to make a wide file (2 or more variable) wider:&amp;nbsp;&lt;A href="http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset" target="_blank"&gt;http://www.sascommunity.org/wiki/A_Better_Way_to_Flip_(Transpose)_a_SAS_Dataset&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you download and run that macro, here is all you then have to submit to get what you want:&lt;/P&gt;
&lt;PRE&gt;proc sort data=have out=need nodupkey;
  by time_m sym_root;
run;

%transpose(data=need, out=want, by=time_m, id=sym_root,
delimiter=_,var=price size)
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2017 21:52:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/359214#M64372</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-16T21:52:00Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362114#M64512</link>
      <description>&lt;P&gt;Art,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help, and my apologies for the delayed response.&amp;nbsp; It took me awhile to get my data to read into the program.&amp;nbsp; That's done now, but I'm not following your comment about running the macro first and then add this code.&amp;nbsp; I went through the paper and the PowerPoint, but can you help with my next step?&amp;nbsp; Here is the program:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Filename three 'G:\threeone.dat';&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; data have;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; infile&amp;nbsp; three expandtabs;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; input TIME_M $ SYM_ROOT $ SIZE PRICE TIME2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* out= need;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;proc sort data=have out=need nodupkey;&lt;BR /&gt;&amp;nbsp; by time_m sym_root;&lt;BR /&gt;&amp;nbsp; prefix=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autovars=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; descendingid=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_first=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delimiter=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copy=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort_options=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_varname=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; preloadfmt=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guessingrows=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newid=);&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;%transpose(data=need, out=want, by=time_m, id=sym_root,&lt;BR /&gt;delimiter=_,var=price size)&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot.&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 01:31:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362114#M64512</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-27T01:31:09Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362115#M64513</link>
      <description>&lt;P&gt;There was a link to the code on that page. The direct link to the code is:&amp;nbsp;&lt;A href="http://www.sascommunity.org/mwiki/images/b/be/BB-07-2013.sas" target="_blank"&gt;http://www.sascommunity.org/mwiki/images/b/be/BB-07-2013.sas&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Copy and paste that code into whatever you use to submit SAS code. After the last line of the macro's code, paste the following lines :&lt;/P&gt;
&lt;PRE&gt;Filename three 'G:\threeone.dat';&lt;BR /&gt;data have;&lt;BR /&gt; &amp;nbsp;infile&amp;nbsp; three expandtabs;&lt;BR /&gt; &amp;nbsp;input TIME_M $ SYM_ROOT $ SIZE PRICE TIME2;&lt;BR /&gt;run;&lt;BR /&gt; &lt;BR /&gt;proc sort data=have out=need nodupkey;
  by time_m sym_root;
run;

%transpose(data=need, out=want, by=time_m, id=sym_root,
delimiter=_,var=price size)&lt;/PRE&gt;
&lt;P&gt;Then click the run icon.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 01:48:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362115#M64513</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-27T01:48:05Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362117#M64514</link>
      <description>&lt;P&gt;Art,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is all of this code included?&amp;nbsp; I ran this program, and did not get any errors, but I also did not get any output:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro transpose(libname_in=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libname_out=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prefix=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autovars=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; descendingid=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_first=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delimiter=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copy=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort_options=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_varname=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; preloadfmt=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guessingrows=,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newid=);&lt;BR /&gt;&lt;BR /&gt;/*Check whether the data and out parameters contain one or two-level filenames*/&lt;BR /&gt;&amp;nbsp; %let lp=%sysfunc(findc(%superq(data),%str(%()));&lt;BR /&gt;&amp;nbsp; %if &amp;amp;lp. %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let rp=%sysfunc(findc(%superq(data),%str(%)),b));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let dsoptions=%qsysfunc(substrn(%nrstr(%superq(data)),&amp;amp;lp+1,&amp;amp;rp-&amp;amp;lp-1));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=%sysfunc(substrn(%nrstr(%superq(data)),1,%eval(&amp;amp;lp-1)));&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %else %let dsoptions=;&lt;BR /&gt;&amp;nbsp; %if %sysfunc(countw(&amp;amp;data.)) eq 2 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=%scan(&amp;amp;data.,1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=%scan(&amp;amp;data.,2);&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %else %if %length(&amp;amp;libname_in.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=work;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; %if %sysfunc(countw(&amp;amp;out.)) eq 2 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_out=%scan(&amp;amp;out.,1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let out=%scan(&amp;amp;out.,2);&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %else %if %length(&amp;amp;libname_out.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_out=work;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;newid.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let newid=row;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; /*obtain last by variable*/&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;by.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let lastby=%scan(&amp;amp;by.,-1);&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let lastby=;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;/*Create macro variable to contain a list of variables to be copied*/&lt;BR /&gt;&amp;nbsp;%let to_copy=;&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;copy.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (obs=1 keep=&amp;amp;copy.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :to_copy separated by " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;/*Populate var parameter in the event it has a null value*/&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;var.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (obs=1 drop=&amp;amp;by. &amp;amp;id. &amp;amp;copy.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :var separated by " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;autovars.")) eq "CHAR" %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and type="char"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %if %sysfunc(upcase("&amp;amp;autovars.")) ne "ALL" %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and type="num"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;/*Initialize macro variables*/&lt;BR /&gt;&amp;nbsp; %let vars_char=;&lt;BR /&gt;&amp;nbsp; %let varlist_char=;&lt;BR /&gt;&amp;nbsp; %let vars_num=;&lt;BR /&gt;&amp;nbsp; %let varlist_num=;&lt;BR /&gt;&amp;nbsp; %let formats_char=;&lt;BR /&gt;&amp;nbsp; %let format_char=;&lt;BR /&gt;&amp;nbsp; %let formats_num=;&lt;BR /&gt;&amp;nbsp; %let format_num=;&lt;BR /&gt;&lt;BR /&gt;/*Create file t_e_m_p to contain one record with all var variables*/&lt;BR /&gt;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (obs=1 keep=&amp;amp;var.);&lt;BR /&gt;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;/*Create macro variables containing untransposed var names and formats*/&lt;BR /&gt;&amp;nbsp; proc sql noprint;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name, case&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when missing(format) then " $"||strip(put(length,5.))||'.'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else strip(format)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :vars_char separated by " ",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :formats_char separated by "~"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type="char"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name, case&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when missing(format) then "best12."&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else strip(format)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :vars_num separated by " ",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :formats_num separated by "~"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type="num"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :vars_all separated by " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp; quit;&lt;BR /&gt;&lt;BR /&gt;/*If sort parameter has a value of YES, create a sorted temporary data file*/&lt;BR /&gt;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;sort.")) eq "YES" %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let notsorted=;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort data=&amp;amp;libname_in..&amp;amp;data.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep=&amp;amp;by. &amp;amp;id. &amp;amp;vars_char. &amp;amp;vars_num. &amp;amp;to_copy.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;dsoptions.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out=t_e_m_p &amp;amp;sort_options. noequals;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by &amp;amp;by.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=t_e_m_p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=work;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let notsorted=notsorted;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; /*if no id parameter is present, create one from &amp;amp;newid.*/&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;id.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by &amp;amp;by.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.&amp;amp;lastby then &amp;amp;newid.=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &amp;amp;newid+1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let id=&amp;amp;newid.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=t_e_m_p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=work;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;/*Ensure guessingrows parameter contains a value*/&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;guessingrows.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let guessingrows=%sysfunc(constant(EXACTINT));&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;/*Ensure a format is assigned to an id variable*/&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;id.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select type,length,%sysfunc(strip(format))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :tr_macro_type, :tr_macro_len, :tr_macro_format&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="%sysfunc(upcase(&amp;amp;libname_in.))" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="%sysfunc(upcase(&amp;amp;data.))" and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; upcase(name)="%sysfunc(upcase(&amp;amp;id.))"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;format.) eq 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let optsave=%sysfunc(getoption(missing),$quote.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options missing=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;tr_macro_format.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format=&amp;amp;tr_macro_format.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %if "&amp;amp;tr_macro_type." eq "num " %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format=%sysfunc(catt(best,&amp;amp;tr_macro_len.,%str(.)));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format=%sysfunc(catt($,&amp;amp;tr_macro_len.,%str(.)));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options missing=&amp;amp;optsave;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;/*Create macro variables containing ordered lists of the requested transposed variable&lt;BR /&gt;&amp;nbsp; names for character (varlist_char) and numeric (varlist_num) var variables */&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(countw(&amp;amp;preloadfmt.)) eq 1 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let preloadfmt=&amp;amp;libname_in..&amp;amp;preloadfmt.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;sort.")) eq "YES" %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let dsoptions=;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc freq data=&amp;amp;libname_in..&amp;amp;data. (obs=&amp;amp;guessingrows. keep=&amp;amp;id. &amp;amp;dsoptions.)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; noprint;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tables &amp;amp;id./out=_for_format (keep=&amp;amp;id.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;descendingid.")) eq "YES" %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort data=_for_format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by descending &amp;amp;id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _for_format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set _for_format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order=_n_;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;proc sql noprint;&lt;BR /&gt;&amp;nbsp; %do i=1 %to 2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;i. eq 1 %then %let i_type=char;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %let i_type=num;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;&amp;amp;vars_&amp;amp;i_type.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do j=1 %to 2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;j. eq 1 %then %let j_type=;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %let j_type=format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do k=1 %to %sysfunc(countw(&amp;amp;&amp;amp;vars_&amp;amp;i_type.));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;j_type. "||cats("&amp;amp;prefix.",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;var_first.")) eq "NO" %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put(&amp;amp;id.,&amp;amp;format),"&amp;amp;delimiter."&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,scan("&amp;amp;&amp;amp;vars_&amp;amp;i_type.",&amp;amp;k.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan("&amp;amp;&amp;amp;vars_&amp;amp;i_type.",&amp;amp;k.),;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;delimiter.",put(&amp;amp;id.,&amp;amp;format)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;j. eq 2 %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||" "||cats(scan("&amp;amp;&amp;amp;formats_&amp;amp;i_type.",&amp;amp;k.,"~"),";");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;k. lt %sysfunc(countw(&amp;amp;&amp;amp;vars_&amp;amp;i_type.)) %then ||;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else ,;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;tr_macro_type." eq "num " %then &amp;amp;id. format=best12.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else &amp;amp;id.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :varlist_&amp;amp;i_type. separated by " ",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :format_&amp;amp;i_type. separated by " ",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :idlist separated by " ",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :idorder separated by " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then from &amp;amp;preloadfmt.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else from _for_format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let num_numlabels=&amp;amp;sqlobs.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; quit;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; proc sql noprint;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let j_type=;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do k=1 %to %sysfunc(countw(&amp;amp;&amp;amp;vars_all.));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;j_type. "||cats("&amp;amp;prefix.",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;var_first.")) eq "NO" %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put(&amp;amp;id.,&amp;amp;format),"&amp;amp;delimiter.",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan("&amp;amp;&amp;amp;vars_all.",&amp;amp;k.);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan("&amp;amp;&amp;amp;vars_all.",&amp;amp;k.),;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;delimiter.",put(&amp;amp;id.,&amp;amp;format))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;k. lt %sysfunc(countw(&amp;amp;&amp;amp;vars_all.)) %then ||;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else ,;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :varlist_all separated by " ",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :idorder separated by " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then from &amp;amp;preloadfmt.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else from _for_format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp; quit;&lt;BR /&gt;&lt;BR /&gt;/*Create a format that will be used to assign values to the transposed variables*/&lt;BR /&gt;&amp;nbsp; data _for_format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then set &amp;amp;preloadfmt. (rename=(&amp;amp;id.=start));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else set _for_format&amp;nbsp; (rename=(&amp;amp;id.=start));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;tr_macro_type." eq "num " %then retain fmtname "labelfmt" type "N";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else retain fmtname "$labelfmt" type "C";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; label=&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) eq 0 %then _n_-1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else order-1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; proc format cntlin = _for_format;&lt;BR /&gt;&amp;nbsp; run ;&lt;BR /&gt;&lt;BR /&gt;/*Create and run the datastep that does the transposition*/&lt;BR /&gt;&amp;nbsp; data &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (keep=&amp;amp;by. &amp;amp;id.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw("&amp;amp;vars_char."));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;vars_char.,&amp;amp;i.)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw("&amp;amp;vars_num."));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;vars_num.,&amp;amp;i.)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw("&amp;amp;to_copy."));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;to_copy.,&amp;amp;i.)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;dsoptions.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by &amp;amp;by. &amp;amp;notsorted.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;format_char. &amp;amp;format_num.&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;vars_char.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array want_char(*) $&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %eval(&amp;amp;num_numlabels.*%sysfunc(countw("&amp;amp;vars_char.")));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;varlist_char.,&amp;amp;i.)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array have_char(*) $ &amp;amp;vars_char.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain want_char;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.&amp;amp;lastby. then call missing(of want_char(*));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ___nchar=put(&amp;amp;id.,labelfmt.)*dim(have_char);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do ___i=1 to dim(have_char);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; want_char(___nchar+___i)=have_char(___i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; %if %length(&amp;amp;vars_num.) gt 0 %then %do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array want_num(*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %eval(&amp;amp;num_numlabels.*%sysfunc(countw("&amp;amp;vars_num.")));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;varlist_num.,&amp;amp;i.)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array have_num(*) &amp;amp;vars_num.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain want_num;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.&amp;amp;lastby. then call missing(of want_num(*));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ___nnum=put(&amp;amp;id.,labelfmt.)*dim(have_num);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do ___i=1 to dim(have_num);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; want_num(___nnum+___i)=have_num(___i);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop &amp;amp;id. ___: &amp;amp;var. &amp;amp;drop.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if last.&amp;amp;lastby. then output;&lt;BR /&gt;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; data &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain &amp;amp;by. &amp;amp;to_copy. &amp;amp;varlist_all.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;/*Delete all temporary files*/&lt;BR /&gt;&amp;nbsp; proc delete data=work.t_e_m_p work._for_format;&lt;BR /&gt;&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;%mend transpose;&lt;BR /&gt;options NOQUOTELENMAX;&lt;BR /&gt;proc sort data=have out=need nodupkey;&lt;BR /&gt;&amp;nbsp; by time_m sym_root;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;%transpose(data=need, out=want, by=time_m, id=sym_root,&lt;BR /&gt;delimiter=_,var=price size)&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:09:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362117#M64514</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-27T02:09:02Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362119#M64515</link>
      <description>&lt;P&gt;Post your log. If the file HAVE was in your work directory, the file WANT should have been created in your work directory.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:13:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362119#M64515</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-27T02:13:09Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362120#M64516</link>
      <description>&lt;P&gt;Thanks a lot Art; this is the log:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;972&amp;nbsp; %macro transpose(libname_in=,&lt;BR /&gt;973&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libname_out=,&lt;BR /&gt;974&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data=,&lt;BR /&gt;975&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out=,&lt;BR /&gt;976&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by=,&lt;BR /&gt;977&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prefix=,&lt;BR /&gt;978&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var=,&lt;BR /&gt;979&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; autovars=,&lt;BR /&gt;980&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id=,&lt;BR /&gt;981&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; descendingid=,&lt;BR /&gt;982&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var_first=,&lt;BR /&gt;983&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format=,&lt;BR /&gt;984&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delimiter=,&lt;BR /&gt;985&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copy=,&lt;BR /&gt;986&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop=,&lt;BR /&gt;987&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort=,&lt;BR /&gt;988&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sort_options=,&lt;BR /&gt;989&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_varname=,&lt;BR /&gt;990&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; preloadfmt=,&lt;BR /&gt;991&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guessingrows=,&lt;BR /&gt;992&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newid=);&lt;BR /&gt;993&lt;BR /&gt;994&amp;nbsp; /*Check whether the data and out parameters contain one or two-level filenames*/&lt;BR /&gt;995&amp;nbsp;&amp;nbsp;&amp;nbsp; %let lp=%sysfunc(findc(%superq(data),%str(%()));&lt;BR /&gt;996&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;lp. %then %do;&lt;BR /&gt;997&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let rp=%sysfunc(findc(%superq(data),%str(%)),b));&lt;BR /&gt;998&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let dsoptions=%qsysfunc(substrn(%nrstr(%superq(data)),&amp;amp;lp+1,&amp;amp;rp-&amp;amp;lp-1));&lt;BR /&gt;999&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=%sysfunc(substrn(%nrstr(%superq(data)),1,%eval(&amp;amp;lp-1)));&lt;BR /&gt;1000&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1001&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %let dsoptions=;&lt;BR /&gt;1002&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(countw(&amp;amp;data.)) eq 2 %then %do;&lt;BR /&gt;1003&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=%scan(&amp;amp;data.,1);&lt;BR /&gt;1004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=%scan(&amp;amp;data.,2);&lt;BR /&gt;1005&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1006&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %if %length(&amp;amp;libname_in.) eq 0 %then %do;&lt;BR /&gt;1007&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=work;&lt;BR /&gt;1008&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1009&lt;BR /&gt;1010&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(countw(&amp;amp;out.)) eq 2 %then %do;&lt;BR /&gt;1011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_out=%scan(&amp;amp;out.,1);&lt;BR /&gt;1012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let out=%scan(&amp;amp;out.,2);&lt;BR /&gt;1013&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1014&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %if %length(&amp;amp;libname_out.) eq 0 %then %do;&lt;BR /&gt;1015&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_out=work;&lt;BR /&gt;1016&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1017&lt;BR /&gt;1018&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;newid.) eq 0 %then %do;&lt;BR /&gt;1019&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let newid=row;&lt;BR /&gt;1020&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1021&lt;BR /&gt;1022&amp;nbsp;&amp;nbsp;&amp;nbsp; /*obtain last by variable*/&lt;BR /&gt;1023&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;by.) gt 0 %then %do;&lt;BR /&gt;1024&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let lastby=%scan(&amp;amp;by.,-1);&lt;BR /&gt;1025&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1026&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;1027&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let lastby=;&lt;BR /&gt;1028&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1029&lt;BR /&gt;1030&amp;nbsp; /*Create macro variable to contain a list of variables to be copied*/&lt;BR /&gt;1031&amp;nbsp;&amp;nbsp; %let to_copy=;&lt;BR /&gt;1032&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;copy.) gt 0 %then %do;&lt;BR /&gt;1033&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;1034&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (obs=1 keep=&amp;amp;copy.);&lt;BR /&gt;1035&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1036&lt;BR /&gt;1037&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;1038&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name&lt;BR /&gt;1039&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :to_copy separated by " "&lt;BR /&gt;1040&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;1041&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;1042&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P"&lt;BR /&gt;1043&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1044&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;1045&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1046&lt;BR /&gt;1047&amp;nbsp; /*Populate var parameter in the event it has a null value*/&lt;BR /&gt;1048&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;var.) eq 0 %then %do;&lt;BR /&gt;1049&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;1050&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (obs=1 drop=&amp;amp;by. &amp;amp;id. &amp;amp;copy.);&lt;BR /&gt;1051&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1052&lt;BR /&gt;1053&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;1054&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name&lt;BR /&gt;1055&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :var separated by " "&lt;BR /&gt;1056&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;1057&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;1058&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P"&lt;BR /&gt;1059&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;autovars.")) eq "CHAR" %then %do;&lt;BR /&gt;1060&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and type="char"&lt;BR /&gt;1061&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1062&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %if %sysfunc(upcase("&amp;amp;autovars.")) ne "ALL" %then %do;&lt;BR /&gt;1063&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and type="num"&lt;BR /&gt;1064&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1065&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1066&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;1067&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1068&lt;BR /&gt;1069&amp;nbsp; /*Initialize macro variables*/&lt;BR /&gt;1070&amp;nbsp;&amp;nbsp;&amp;nbsp; %let vars_char=;&lt;BR /&gt;1071&amp;nbsp;&amp;nbsp;&amp;nbsp; %let varlist_char=;&lt;BR /&gt;1072&amp;nbsp;&amp;nbsp;&amp;nbsp; %let vars_num=;&lt;BR /&gt;1073&amp;nbsp;&amp;nbsp;&amp;nbsp; %let varlist_num=;&lt;BR /&gt;1074&amp;nbsp;&amp;nbsp;&amp;nbsp; %let formats_char=;&lt;BR /&gt;1075&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format_char=;&lt;BR /&gt;1076&amp;nbsp;&amp;nbsp;&amp;nbsp; %let formats_num=;&lt;BR /&gt;1077&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format_num=;&lt;BR /&gt;1078&lt;BR /&gt;1079&amp;nbsp; /*Create file t_e_m_p to contain one record with all var variables*/&lt;BR /&gt;1080&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;1081&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (obs=1 keep=&amp;amp;var.);&lt;BR /&gt;1082&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1083&lt;BR /&gt;1084&amp;nbsp; /*Create macro variables containing untransposed var names and formats*/&lt;BR /&gt;1085&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;1086&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name, case&lt;BR /&gt;1087&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when missing(format) then " $"||strip(put(length,5.))||'.'&lt;BR /&gt;1088&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else strip(format)&lt;BR /&gt;1089&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;BR /&gt;1090&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :vars_char separated by " ",&lt;BR /&gt;1091&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :formats_char separated by "~"&lt;BR /&gt;1092&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;1093&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;1094&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P" and&lt;BR /&gt;1095&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type="char"&lt;BR /&gt;1096&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1097&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name, case&lt;BR /&gt;1098&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when missing(format) then "best12."&lt;BR /&gt;1099&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else strip(format)&lt;BR /&gt;1100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;BR /&gt;1101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :vars_num separated by " ",&lt;BR /&gt;1102&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :formats_num separated by "~"&lt;BR /&gt;1103&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;1104&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;1105&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P" and&lt;BR /&gt;1106&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type="num"&lt;BR /&gt;1107&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1108&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name&lt;BR /&gt;1109&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :vars_all separated by " "&lt;BR /&gt;1110&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="WORK" and&lt;BR /&gt;1112&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="T_E_M_P"&lt;BR /&gt;1113&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1114&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;1115&lt;BR /&gt;1116&amp;nbsp; /*If sort parameter has a value of YES, create a sorted temporary data file*/&lt;BR /&gt;1117&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;sort.")) eq "YES" %then %do;&lt;BR /&gt;1118&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let notsorted=;&lt;BR /&gt;1119&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort data=&amp;amp;libname_in..&amp;amp;data.&lt;BR /&gt;1120&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;BR /&gt;1121&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep=&amp;amp;by. &amp;amp;id. &amp;amp;vars_char. &amp;amp;vars_num. &amp;amp;to_copy.&lt;BR /&gt;1122&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;dsoptions.&lt;BR /&gt;1123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;1124&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out=t_e_m_p &amp;amp;sort_options. noequals;&lt;BR /&gt;1125&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by &amp;amp;by.;&lt;BR /&gt;1126&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1127&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=t_e_m_p;&lt;BR /&gt;1128&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=work;&lt;BR /&gt;1129&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1130&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;1131&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let notsorted=notsorted;&lt;BR /&gt;1132&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1133&lt;BR /&gt;1134&amp;nbsp;&amp;nbsp;&amp;nbsp; /*if no id parameter is present, create one from &amp;amp;newid.*/&lt;BR /&gt;1135&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;id.) eq 0 %then %do;&lt;BR /&gt;1136&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data t_e_m_p;&lt;BR /&gt;1137&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data.;&lt;BR /&gt;1138&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by &amp;amp;by.;&lt;BR /&gt;1139&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.&amp;amp;lastby then &amp;amp;newid.=1;&lt;BR /&gt;1140&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &amp;amp;newid+1;&lt;BR /&gt;1141&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1142&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let id=&amp;amp;newid.;&lt;BR /&gt;1143&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let data=t_e_m_p;&lt;BR /&gt;1144&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let libname_in=work;&lt;BR /&gt;1145&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1146&lt;BR /&gt;1147&amp;nbsp; /*Ensure guessingrows parameter contains a value*/&lt;BR /&gt;1148&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;guessingrows.) eq 0 %then %do;&lt;BR /&gt;1149&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let guessingrows=%sysfunc(constant(EXACTINT));&lt;BR /&gt;1150&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1151&lt;BR /&gt;1152&amp;nbsp; /*Ensure a format is assigned to an id variable*/&lt;BR /&gt;1153&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;id.) gt 0 %then %do;&lt;BR /&gt;1154&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;1155&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select type,length,%sysfunc(strip(format))&lt;BR /&gt;1156&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :tr_macro_type, :tr_macro_len, :tr_macro_format&lt;BR /&gt;1157&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;BR /&gt;1158&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname="%sysfunc(upcase(&amp;amp;libname_in.))" and&lt;BR /&gt;1159&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memname="%sysfunc(upcase(&amp;amp;data.))" and&lt;BR /&gt;1160&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; upcase(name)="%sysfunc(upcase(&amp;amp;id.))"&lt;BR /&gt;1161&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1162&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;1163&lt;BR /&gt;1164&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;format.) eq 0 %then %do;&lt;BR /&gt;1165&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let optsave=%sysfunc(getoption(missing),$quote.);&lt;BR /&gt;1166&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options missing=.;&lt;BR /&gt;1167&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;tr_macro_format.) gt 0 %then %do;&lt;BR /&gt;1168&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format=&amp;amp;tr_macro_format.;&lt;BR /&gt;1169&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1170&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %if "&amp;amp;tr_macro_type." eq "num " %then %do;&lt;BR /&gt;1171&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format=%sysfunc(catt(best,&amp;amp;tr_macro_len.,%str(.)));&lt;BR /&gt;1172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1173&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;1174&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let format=%sysfunc(catt($,&amp;amp;tr_macro_len.,%str(.)));&lt;BR /&gt;1175&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1176&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; options missing=&amp;amp;optsave;&lt;BR /&gt;1177&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1178&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1179&lt;BR /&gt;1180&amp;nbsp; /*Create macro variables containing ordered lists of the requested transposed variable&lt;BR /&gt;1181&amp;nbsp;&amp;nbsp;&amp;nbsp; names for character (varlist_char) and numeric (varlist_num) var variables */&lt;BR /&gt;1182&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then %do;&lt;BR /&gt;1183&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(countw(&amp;amp;preloadfmt.)) eq 1 %then %do;&lt;BR /&gt;1184&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let preloadfmt=&amp;amp;libname_in..&amp;amp;preloadfmt.;&lt;BR /&gt;1185&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1186&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1187&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;1188&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;sort.")) eq "YES" %then&lt;BR /&gt;1189&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let dsoptions=;&lt;BR /&gt;1190&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc freq data=&amp;amp;libname_in..&amp;amp;data. (obs=&amp;amp;guessingrows. keep=&amp;amp;id. &amp;amp;dsoptions.)&lt;BR /&gt;1191&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; noprint;&lt;BR /&gt;1192&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tables &amp;amp;id./out=_for_format (keep=&amp;amp;id.);&lt;BR /&gt;1193&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1194&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;descendingid.")) eq "YES" %then %do;&lt;BR /&gt;1195&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sort data=_for_format;&lt;BR /&gt;1196&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by descending &amp;amp;id;&lt;BR /&gt;1197&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1198&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1199&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _for_format;&lt;BR /&gt;1200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set _for_format;&lt;BR /&gt;1201&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order=_n_;&lt;BR /&gt;1202&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1203&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1204&lt;BR /&gt;1205&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;1206&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to 2;&lt;BR /&gt;1207&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;i. eq 1 %then %let i_type=char;&lt;BR /&gt;1208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %let i_type=num;&lt;BR /&gt;1209&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;&amp;amp;vars_&amp;amp;i_type.) gt 0 %then %do;&lt;BR /&gt;1210&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct&lt;BR /&gt;1211&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do j=1 %to 2;&lt;BR /&gt;1212&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;j. eq 1 %then %let j_type=;&lt;BR /&gt;1213&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %let j_type=format;&lt;BR /&gt;1214&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do k=1 %to %sysfunc(countw(&amp;amp;&amp;amp;vars_&amp;amp;i_type.));&lt;BR /&gt;1215&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;j_type. "||cats("&amp;amp;prefix.",&lt;BR /&gt;1216&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;var_first.")) eq "NO" %then %do;&lt;BR /&gt;1217&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put(&amp;amp;id.,&amp;amp;format),"&amp;amp;delimiter."&lt;BR /&gt;1218&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;1219&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,scan("&amp;amp;&amp;amp;vars_&amp;amp;i_type.",&amp;amp;k.);&lt;BR /&gt;1220&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1221&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;1222&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;1223&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan("&amp;amp;&amp;amp;vars_&amp;amp;i_type.",&amp;amp;k.),;&lt;BR /&gt;1224&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;delimiter.",put(&amp;amp;id.,&amp;amp;format)&lt;BR /&gt;1225&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1226&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;1227&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;j. eq 2 %then&lt;BR /&gt;1228&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||" "||cats(scan("&amp;amp;&amp;amp;formats_&amp;amp;i_type.",&amp;amp;k.,"~"),";");&lt;BR /&gt;1229&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;k. lt %sysfunc(countw(&amp;amp;&amp;amp;vars_&amp;amp;i_type.)) %then ||;&lt;BR /&gt;1230&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else ,;&lt;BR /&gt;1231&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1232&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1233&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;tr_macro_type." eq "num " %then &amp;amp;id. format=best12.;&lt;BR /&gt;1234&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else &amp;amp;id.;&lt;BR /&gt;1235&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,order&lt;BR /&gt;1236&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :varlist_&amp;amp;i_type. separated by " ",&lt;BR /&gt;1237&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :format_&amp;amp;i_type. separated by " ",&lt;BR /&gt;1238&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :idlist separated by " ",&lt;BR /&gt;1239&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :idorder separated by " "&lt;BR /&gt;1240&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then from &amp;amp;preloadfmt.;&lt;BR /&gt;1241&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else from _for_format;&lt;BR /&gt;1242&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by order&lt;BR /&gt;1243&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1244&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let num_numlabels=&amp;amp;sqlobs.;&lt;BR /&gt;1245&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1246&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1247&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;1248&lt;BR /&gt;1249&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;BR /&gt;1250&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select distinct&lt;BR /&gt;1251&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let j_type=;&lt;BR /&gt;1252&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do k=1 %to %sysfunc(countw(&amp;amp;&amp;amp;vars_all.));&lt;BR /&gt;1253&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;j_type. "||cats("&amp;amp;prefix.",&lt;BR /&gt;1254&lt;BR /&gt;1255&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;var_first.")) eq "NO" %then %do;&lt;BR /&gt;1256&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put(&amp;amp;id.,&amp;amp;format),"&amp;amp;delimiter.",&lt;BR /&gt;1257&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;1258&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan("&amp;amp;&amp;amp;vars_all.",&amp;amp;k.);&lt;BR /&gt;1259&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;1260&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1261&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else %do;&lt;BR /&gt;1262&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %sysfunc(upcase("&amp;amp;use_varname.")) ne "NO" %then&lt;BR /&gt;1263&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scan("&amp;amp;&amp;amp;vars_all.",&amp;amp;k.),;&lt;BR /&gt;1264&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;amp;delimiter.",put(&amp;amp;id.,&amp;amp;format))&lt;BR /&gt;1265&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1266&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if &amp;amp;k. lt %sysfunc(countw(&amp;amp;&amp;amp;vars_all.)) %then ||;&lt;BR /&gt;1267&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else ,;&lt;BR /&gt;1268&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1269&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order&lt;BR /&gt;1270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; into :varlist_all separated by " ",&lt;BR /&gt;1271&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :idorder separated by " "&lt;BR /&gt;1272&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then from &amp;amp;preloadfmt.;&lt;BR /&gt;1273&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else from _for_format;&lt;BR /&gt;1274&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; order by order&lt;BR /&gt;1275&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1276&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;BR /&gt;1277&lt;BR /&gt;1278&amp;nbsp; /*Create a format that will be used to assign values to the transposed variables*/&lt;BR /&gt;1279&amp;nbsp;&amp;nbsp;&amp;nbsp; data _for_format;&lt;BR /&gt;1280&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) gt 0 %then set &amp;amp;preloadfmt. (rename=(&amp;amp;id.=start));&lt;BR /&gt;1281&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else set _for_format&amp;nbsp; (rename=(&amp;amp;id.=start));&lt;BR /&gt;1282&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1283&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if "&amp;amp;tr_macro_type." eq "num " %then retain fmtname "labelfmt" type "N";&lt;BR /&gt;1284&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else retain fmtname "$labelfmt" type "C";&lt;BR /&gt;1285&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1286&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; label=&lt;BR /&gt;1287&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;preloadfmt.) eq 0 %then _n_-1;&lt;BR /&gt;1288&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %else order-1;&lt;BR /&gt;1289&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1290&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1291&lt;BR /&gt;1292&amp;nbsp;&amp;nbsp;&amp;nbsp; proc format cntlin = _for_format;&lt;BR /&gt;1293&amp;nbsp;&amp;nbsp;&amp;nbsp; run ;&lt;BR /&gt;1294&lt;BR /&gt;1295&amp;nbsp; /*Create and run the datastep that does the transposition*/&lt;BR /&gt;1296&amp;nbsp;&amp;nbsp;&amp;nbsp; data &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;1297&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_in..&amp;amp;data. (keep=&amp;amp;by. &amp;amp;id.&lt;BR /&gt;1298&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw("&amp;amp;vars_char."));&lt;BR /&gt;1299&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;vars_char.,&amp;amp;i.)&lt;BR /&gt;1300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1301&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw("&amp;amp;vars_num."));&lt;BR /&gt;1302&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;vars_num.,&amp;amp;i.)&lt;BR /&gt;1303&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1304&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %sysfunc(countw("&amp;amp;to_copy."));&lt;BR /&gt;1305&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;to_copy.,&amp;amp;i.)&lt;BR /&gt;1306&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1307&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;dsoptions.&lt;BR /&gt;1308&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;BR /&gt;1309&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by &amp;amp;by. &amp;amp;notsorted.;&lt;BR /&gt;1310&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;format_char. &amp;amp;format_num.&lt;BR /&gt;1311&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;vars_char.) gt 0 %then %do;&lt;BR /&gt;1312&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array want_char(*) $&lt;BR /&gt;1313&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %eval(&amp;amp;num_numlabels.*%sysfunc(countw("&amp;amp;vars_char.")));&lt;BR /&gt;1314&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;varlist_char.,&amp;amp;i.)&lt;BR /&gt;1315&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1316&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1317&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array have_char(*) $ &amp;amp;vars_char.;&lt;BR /&gt;1318&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain want_char;&lt;BR /&gt;1319&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.&amp;amp;lastby. then call missing(of want_char(*));&lt;BR /&gt;1320&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ___nchar=put(&amp;amp;id.,labelfmt.)*dim(have_char);&lt;BR /&gt;1321&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do ___i=1 to dim(have_char);&lt;BR /&gt;1322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; want_char(___nchar+___i)=have_char(___i);&lt;BR /&gt;1323&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;1324&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1325&amp;nbsp;&amp;nbsp;&amp;nbsp; %if %length(&amp;amp;vars_num.) gt 0 %then %do;&lt;BR /&gt;1326&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array want_num(*)&lt;BR /&gt;1327&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %do i=1 %to %eval(&amp;amp;num_numlabels.*%sysfunc(countw("&amp;amp;vars_num.")));&lt;BR /&gt;1328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %scan(&amp;amp;varlist_num.,&amp;amp;i.)&lt;BR /&gt;1329&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1330&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;1331&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array have_num(*) &amp;amp;vars_num.;&lt;BR /&gt;1332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain want_num;&lt;BR /&gt;1333&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if first.&amp;amp;lastby. then call missing(of want_num(*));&lt;BR /&gt;1334&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ___nnum=put(&amp;amp;id.,labelfmt.)*dim(have_num);&lt;BR /&gt;1335&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do ___i=1 to dim(have_num);&lt;BR /&gt;1336&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; want_num(___nnum+___i)=have_num(___i);&lt;BR /&gt;1337&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;1338&amp;nbsp;&amp;nbsp;&amp;nbsp; %end;&lt;BR /&gt;1339&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop &amp;amp;id. ___: &amp;amp;var. &amp;amp;drop.;&lt;BR /&gt;1340&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if last.&amp;amp;lastby. then output;&lt;BR /&gt;1341&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1342&lt;BR /&gt;1343&amp;nbsp;&amp;nbsp;&amp;nbsp; data &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;1344&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retain &amp;amp;by. &amp;amp;to_copy. &amp;amp;varlist_all.;&lt;BR /&gt;1345&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set &amp;amp;libname_out..&amp;amp;out.;&lt;BR /&gt;1346&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1347&lt;BR /&gt;1348&amp;nbsp; /*Delete all temporary files*/&lt;BR /&gt;1349&amp;nbsp;&amp;nbsp;&amp;nbsp; proc delete data=work.t_e_m_p work._for_format;&lt;BR /&gt;1350&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;BR /&gt;1351&lt;BR /&gt;1352&amp;nbsp; %mend transpose;&lt;BR /&gt;1353&amp;nbsp; options NOQUOTELENMAX;&lt;BR /&gt;1354&amp;nbsp; proc sort data=have out=need nodupkey;&lt;BR /&gt;1355&amp;nbsp;&amp;nbsp;&amp;nbsp; by time_m sym_root;&lt;BR /&gt;1356&amp;nbsp; run;&lt;BR /&gt;1357&lt;BR /&gt;1358&amp;nbsp; %transpose(data=need, out=want, by=time_m, id=sym_root,&lt;BR /&gt;1359&amp;nbsp; delimiter=_,var=price size)&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:16:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362120#M64516</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-27T02:16:26Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362121#M64517</link>
      <description>&lt;P&gt;When your ran the code to first create the file have, did you check to see that it had actually run and created that file?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Honestly, I don't know what the problem might be! My guess is that something you ran prior to running the macro that caused SAS to stall. Close SAS and then restart it. Then run the same code as you ran before .. including first running your data step to create the file have.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:22:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362121#M64517</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-27T02:22:33Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362123#M64519</link>
      <description>&lt;P&gt;Well, you were right.&amp;nbsp; Once I shut down and restarted SAS, the file ran further.&amp;nbsp; And you were also correct: there is an issue with the work file. This is the log error; how do I correct this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;381&amp;nbsp; %mend transpose;&lt;BR /&gt;382&amp;nbsp; options NOQUOTELENMAX;&lt;BR /&gt;383&amp;nbsp; proc sort data=have out=need nodupkey;&lt;BR /&gt;ERROR: File WORK.HAVE.DATA does not exist.&lt;BR /&gt;384&amp;nbsp;&amp;nbsp;&amp;nbsp; by time_m sym_root;&lt;BR /&gt;385&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.NEED may be incomplete.&amp;nbsp; When this step was stopped there were 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; observations and 0 variables.&lt;BR /&gt;NOTE: PROCEDURE SORT used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.06 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;BR /&gt;&lt;BR /&gt;386&lt;BR /&gt;387&amp;nbsp; %transpose(data=need, out=want, by=time_m, id=sym_root,&lt;BR /&gt;388&amp;nbsp; delimiter=_,var=price size)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;ERROR: The variable price in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;ERROR: The variable size in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;&lt;BR /&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;BR /&gt;WARNING: The data set WORK.T_E_M_P may be incomplete.&amp;nbsp; When this step was stopped there were 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; observations and 0 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.03 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.04 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:39:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362123#M64519</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-27T02:39:52Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362126#M64521</link>
      <description>&lt;P&gt;Just post the part of the log from the data step where you tried to create the file work.have&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:43:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362126#M64521</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-27T02:43:59Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362128#M64522</link>
      <description>&lt;P&gt;Here &amp;nbsp;%macro transpose(libname_in=,&lt;BR /&gt;390&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libname_out=,&lt;BR /&gt;391&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data= have,&lt;BR /&gt;392&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out= need,&lt;BR /&gt;393&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by=,&lt;BR /&gt;you go Art; I really appreciate all of your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:54:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362128#M64522</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-27T02:54:08Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362130#M64524</link>
      <description>&lt;P&gt;That is not what I need to see. I need to see the log from your running:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Filename three 'G:\threeone.dat';
data have;
  infile  three expandtabs;
  input TIME_M $ SYM_ROOT $ SIZE PRICE TIME2;
run;
 
proc sort data=have out=need nodupkey;
  by time_m sym_root;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 02:58:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362130#M64524</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-27T02:58:54Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362131#M64525</link>
      <description>&lt;P&gt;Here you go:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;77&amp;nbsp; Filename three 'G:\threeone.dat';&lt;BR /&gt;778&amp;nbsp; data have;&lt;BR /&gt;779&amp;nbsp;&amp;nbsp;&amp;nbsp; infile&amp;nbsp; three expandtabs;&lt;BR /&gt;780&amp;nbsp;&amp;nbsp;&amp;nbsp; input TIME_M $ SYM_ROOT $ SIZE PRICE TIME2;&lt;BR /&gt;781&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;NOTE: The infile THREE is:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filename=G:\threeone.dat,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RECFM=V,LRECL=32767,File Size (bytes)=4860534,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last Modified=26May2017:12:52:06,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create Time=25May2017:23:18:31&lt;BR /&gt;&lt;BR /&gt;NOTE: 179219 records were read from the infile THREE.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The minimum record length was 19.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The maximum record length was 30.&lt;BR /&gt;NOTE: The data set WORK.HAVE has 179219 observations and 5 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.24 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.17 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;782&lt;BR /&gt;783&amp;nbsp; proc sort data=have out=need nodupkey;&lt;BR /&gt;784&amp;nbsp;&amp;nbsp;&amp;nbsp; by time_m sym_root;&lt;BR /&gt;785&amp;nbsp; run;&lt;BR /&gt;&lt;BR /&gt;NOTE: There were 179219 observations read from the data set WORK.HAVE.&lt;BR /&gt;NOTE: 13934 observations with duplicate key values were deleted.&lt;BR /&gt;NOTE: The data set WORK.NEED has 165285 observations and 5 variables.&lt;BR /&gt;NOTE: PROCEDURE SORT used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.14 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.24 seconds&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 03:01:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362131#M64525</guid>
      <dc:creator>kbl</dc:creator>
      <dc:date>2017-05-27T03:01:10Z</dc:date>
    </item>
    <item>
      <title>Re: Transposed data</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362132#M64526</link>
      <description>&lt;P&gt;If you're still in the same session then just run:&lt;/P&gt;
&lt;PRE&gt;%transpose(data=need, out=want, by=time_m, id=sym_root,
delimiter=_,var=price size)&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Sat, 27 May 2017 03:05:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Transposed-data/m-p/362132#M64526</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-05-27T03:05:38Z</dc:date>
    </item>
  </channel>
</rss>

