<?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: Proc Transpose in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61073#M13256</link>
    <description>hi ... another suggestion ... at the start of the job, instead of this ...&lt;BR /&gt;
&lt;BR /&gt;
Data WORK.CLINICAL_test;&lt;BR /&gt;
Set WORK.CLINICAL;&lt;BR /&gt;
&lt;BR /&gt;
Proc Sort Data=WORK.CLINICAL_test;&lt;BR /&gt;
by ID RID VISCODE_NEW CMMED_NEW;&lt;BR /&gt;
Run;&lt;BR /&gt;
&lt;BR /&gt;
how about this ...&lt;BR /&gt;
&lt;BR /&gt;
Proc Sort data=work.clinical out=WORK.CLINICAL_test;&lt;BR /&gt;
by ID RID VISCODE_NEW CMMED_NEW;&lt;BR /&gt;
Run;&lt;BR /&gt;
&lt;BR /&gt;
it eliminates an unnecessary  pass through the data in that data step</description>
    <pubDate>Fri, 14 Jan 2011 03:29:03 GMT</pubDate>
    <dc:creator>MikeZdeb</dc:creator>
    <dc:date>2011-01-14T03:29:03Z</dc:date>
    <item>
      <title>Proc Transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61071#M13254</link>
      <description>Hi everyone,&lt;BR /&gt;
&lt;BR /&gt;
We have a large data with multiple observations in rows. &lt;BR /&gt;
&lt;BR /&gt;
We wanted to transpose a column,  CMMED_NEW (Variable) with several entries for same ID at different visits levels (visits is coded VISCODE_NEW, 1 to 12 visits codes. NOTE: number of visits for each ID differ. Maximum visits 10, minimum 1).&lt;BR /&gt;
&lt;BR /&gt;
We used the syntax below to transpose the Column CMMED_NEW but always got error message that there was "no ID variable in the Data" even thought the ID variable in in the file.&lt;BR /&gt;
&lt;BR /&gt;
Can anyone kindly advice.&lt;BR /&gt;
&lt;BR /&gt;
Many thanks in advance.&lt;BR /&gt;
&lt;BR /&gt;
Nisser &lt;BR /&gt;
&lt;BR /&gt;
Syntax used:&lt;BR /&gt;
Data WORK.CLINICAL_test;&lt;BR /&gt;
Set  WORK.CLINICAL;&lt;BR /&gt;
Proc Sort Data=WORK.CLINICAL_test;&lt;BR /&gt;
by ID RID VISCODE_NEW CMMED_NEW; &lt;BR /&gt;
Run;&lt;BR /&gt;
&lt;BR /&gt;
Data WORK.CLINICAL_testss;&lt;BR /&gt;
Set WORK.CLINICALS_test; &lt;BR /&gt;
&lt;BR /&gt;
Array AA(12) EXAMDATE1 - EXAMDATE12;&lt;BR /&gt;
Array BB(12) CMMED_new1 - CMMED_new12;&lt;BR /&gt;
Array CC(12) CMREASON1 - CMREASON12;&lt;BR /&gt;
Array DD(12) CMBGN1 - CMBGN12;&lt;BR /&gt;
Array EE(12) CMCONT1 - CMCONT12;&lt;BR /&gt;
Array FF(12) CMEND1 - CMEND12;&lt;BR /&gt;
Array GG(12) CMEND_Revised1 - CMEND_Revised12;&lt;BR /&gt;
Array HH(12) Hypertension_Hx1 - Hypertension_Hx12;&lt;BR /&gt;
Array II(12) HTN_Med_YN1 - HTN_Med_YN12;&lt;BR /&gt;
Array JJ(12) HTN_Med_YNN1 - HTN_Med_YNN12;&lt;BR /&gt;
Array KK(12) HTN_Med_YNNN1 - HTN_Med_YNNN12;&lt;BR /&gt;
Array LL(12) Med_Duration_days1 - Med_Duration_days12;&lt;BR /&gt;
Array MM(12) HTN_ACE1 - HTN_ACE12;&lt;BR /&gt;
Array NN(12) HTN_ARB1 - HTN_ARB12;&lt;BR /&gt;
Array OO(12) HTN_Bblocker1 - HTN_Bblocker12;&lt;BR /&gt;
Array PP(12) HTN_CCBlocker1 - HTN_CCBlocker12;&lt;BR /&gt;
Array QQ(12) HTN_Diuretic1 - HTN_Diuretic12;&lt;BR /&gt;
Array RR(12) HTN_Alpha_Block1 - HTN_Alpha_Block12;&lt;BR /&gt;
Array SS(12) HTN_Vasodil1 - HTN_Vasodil12;&lt;BR /&gt;
Array TT(12) HTN_Cent_Act1 - HTN_Cent_Act12;&lt;BR /&gt;
Array UU(12) HTN_Others1 - HTN_Others12;&lt;BR /&gt;
Array VV(12) HTN_Med_Any1 - HTN_Med_Any12;&lt;BR /&gt;
Array WW(12) Dementia_YN1 - Dementia_YN12;&lt;BR /&gt;
Array XX(12) Dementia_Med1 - Dementia_Med12;&lt;BR /&gt;
Array YY(12) Vitamins_E1 - Vitamins_E12;&lt;BR /&gt;
Array ZZ(12) Vit_B12_Folic1 - Vit_B12_Folic12;&lt;BR /&gt;
Array AB(12) Vitamins_DHA1 - Vitamins_DHA12;&lt;BR /&gt;
Array AC(12) Vitamins_Others1 - Vitamins_Others12;&lt;BR /&gt;
&lt;BR /&gt;
Do VISCODE_new=1 to 12;&lt;BR /&gt;
Set WORK.CLINICAL_RECCMEDS_testss; *WORK.CLINICAL_RECCMEDS_test3;&lt;BR /&gt;
If VISCODE_New ^=".";&lt;BR /&gt;
By ID;&lt;BR /&gt;
&lt;BR /&gt;
AA(VISCODE_NEW)=EXAMDATE;&lt;BR /&gt;
BB(VISCODE_NEW)=CMMED_new;&lt;BR /&gt;
CC(VISCODE_NEW)=CMREASON;&lt;BR /&gt;
DD(VISCODE_NEW)=CMBGN;&lt;BR /&gt;
EE(VISCODE_NEW)=CMCONT;&lt;BR /&gt;
FF(VISCODE_NEW)=CMEND;&lt;BR /&gt;
GG(VISCODE_NEW)=CMEND_Revised;&lt;BR /&gt;
HH(VISCODE_NEW)=Hypertension_Hx;&lt;BR /&gt;
II(VISCODE_NEW)=HTN_Med_YN;&lt;BR /&gt;
JJ(VISCODE_NEW)=HTN_Med_YNN;&lt;BR /&gt;
KK(VISCODE_NEW)=HTN_Med_YNNN;&lt;BR /&gt;
LL(VISCODE_NEW)=Med_Duration_days;&lt;BR /&gt;
MM(VISCODE_NEW)=HTN_ACE;&lt;BR /&gt;
NN(VISCODE_NEW)=HTN_ARB;&lt;BR /&gt;
OO(VISCODE_NEW)=HTN_Bblocker;&lt;BR /&gt;
PP(VISCODE_NEW)=HTN_CCBlocker;&lt;BR /&gt;
QQ(VISCODE_NEW)=HTN_Diuretic;&lt;BR /&gt;
RR(VISCODE_NEW)=HTN_Alpha_Block;&lt;BR /&gt;
SS(VISCODE_NEW)=HTN_Vasodil;&lt;BR /&gt;
TT(VISCODE_NEW)=HTN_Cent_Act;&lt;BR /&gt;
UU(VISCODE_NEW)=HTN_Others;&lt;BR /&gt;
VV(VISCODE_NEW)=HTN_Med_Any;&lt;BR /&gt;
WW(VISCODE_NEW)=Dementia_YN;&lt;BR /&gt;
XX(VISCODE_NEW)=Dementia_Med;&lt;BR /&gt;
YY(VISCODE_NEW)=Vitamins_E;&lt;BR /&gt;
ZZ(VISCODE_NEW)=Vit_B12_Folic;&lt;BR /&gt;
AB(VISCODE_NEW)=Vitamins_DHA;&lt;BR /&gt;
AC(VISCODE_NEW)=Vitamins_Others;&lt;BR /&gt;
If last.VISCODE_New then return;&lt;BR /&gt;
End;&lt;BR /&gt;
Run;</description>
      <pubDate>Tue, 11 Jan 2011 04:31:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61071#M13254</guid>
      <dc:creator>Nisser</dc:creator>
      <dc:date>2011-01-11T04:31:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proc Transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61072#M13255</link>
      <description>&amp;gt; Hi &lt;BR /&gt;
&lt;BR /&gt;
&amp;gt; We used the syntax below &lt;BR /&gt;
&lt;BR /&gt;
&amp;gt; "no ID variable in the Data" even thought the ID&lt;BR /&gt;
&amp;gt; variable in in the file.&lt;BR /&gt;
  &lt;BR /&gt;
&amp;gt; Nisser &lt;BR /&gt;
 &lt;BR /&gt;
 &lt;BR /&gt;
selected statements from your code&lt;BR /&gt;
  &lt;BR /&gt;
&amp;gt; Set WORK.CLINICALS_test; &lt;BR /&gt;
 &lt;BR /&gt;
&amp;gt; Set WORK.CLINICAL_RECCMEDS_testss;&lt;BR /&gt;
 &lt;BR /&gt;
&amp;gt; By ID;&lt;BR /&gt;
  &lt;BR /&gt;
You may not have posted the code which created the message, because I see the output from the sort statement "Proc Sort Data=WORK.CLINICAL_test;"&lt;BR /&gt;
is not read by the data step causing trouble.&lt;BR /&gt;
That is why we recommend posting the SASlog of the steps up to the point where the errors are reported.&lt;BR /&gt;
 &lt;BR /&gt;
hth&lt;BR /&gt;
peterC</description>
      <pubDate>Tue, 11 Jan 2011 11:57:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61072#M13255</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2011-01-11T11:57:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proc Transpose</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61073#M13256</link>
      <description>hi ... another suggestion ... at the start of the job, instead of this ...&lt;BR /&gt;
&lt;BR /&gt;
Data WORK.CLINICAL_test;&lt;BR /&gt;
Set WORK.CLINICAL;&lt;BR /&gt;
&lt;BR /&gt;
Proc Sort Data=WORK.CLINICAL_test;&lt;BR /&gt;
by ID RID VISCODE_NEW CMMED_NEW;&lt;BR /&gt;
Run;&lt;BR /&gt;
&lt;BR /&gt;
how about this ...&lt;BR /&gt;
&lt;BR /&gt;
Proc Sort data=work.clinical out=WORK.CLINICAL_test;&lt;BR /&gt;
by ID RID VISCODE_NEW CMMED_NEW;&lt;BR /&gt;
Run;&lt;BR /&gt;
&lt;BR /&gt;
it eliminates an unnecessary  pass through the data in that data step</description>
      <pubDate>Fri, 14 Jan 2011 03:29:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Proc-Transpose/m-p/61073#M13256</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2011-01-14T03:29:03Z</dc:date>
    </item>
  </channel>
</rss>

