<?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: Transpose the table and insert few column by look up in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700420#M214354</link>
    <description>&lt;P&gt;I don't follow this logic. Why is Trainer=1 and the rest 0 in the second obs?&lt;/P&gt;</description>
    <pubDate>Fri, 20 Nov 2020 10:05:09 GMT</pubDate>
    <dc:creator>PeterClemmensen</dc:creator>
    <dc:date>2020-11-20T10:05:09Z</dc:date>
    <item>
      <title>Transpose the table and insert few column by look up</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700416#M214351</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;From the University table, I need to give score (0 or 1) for Teachers in different category/subcat of different subjects.&lt;/P&gt;
&lt;P&gt;How can I transpose the data by adding three new columns (varible, category, subcategory) into the master sheet. The categorization data is available in '&lt;CODE class=" language-sas"&gt;lookup'&amp;nbsp;table.&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;&lt;CODE class=" language-sas"&gt;My desired output (added for one Teacher)&lt;/CODE&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;TABLE width="849"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;seq&lt;/TD&gt;
&lt;TD width="64"&gt;Teacher&lt;/TD&gt;
&lt;TD width="64"&gt;Surname&lt;/TD&gt;
&lt;TD width="104"&gt;Email&lt;/TD&gt;
&lt;TD width="64"&gt;Variable&lt;/TD&gt;
&lt;TD width="88"&gt;Category&lt;/TD&gt;
&lt;TD width="81"&gt;Subcategory&lt;/TD&gt;
&lt;TD width="64"&gt;Trainer&lt;/TD&gt;
&lt;TD width="64"&gt;Beginner&lt;/TD&gt;
&lt;TD width="64"&gt;Medium&lt;/TD&gt;
&lt;TD width="64"&gt;Expert&lt;/TD&gt;
&lt;TD width="64"&gt;Mastery&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;English&lt;/TD&gt;
&lt;TD&gt;Arts&lt;/TD&gt;
&lt;TD&gt;Syllabus1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;History&lt;/TD&gt;
&lt;TD&gt;Arts&lt;/TD&gt;
&lt;TD&gt;Syllabus1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Geography&lt;/TD&gt;
&lt;TD&gt;Arts&lt;/TD&gt;
&lt;TD&gt;Syllabus2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Math&lt;/TD&gt;
&lt;TD&gt;Development&lt;/TD&gt;
&lt;TD&gt;Syllabus3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Science&lt;/TD&gt;
&lt;TD&gt;Development&lt;/TD&gt;
&lt;TD&gt;Syllabus4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Economics&lt;/TD&gt;
&lt;TD&gt;Emerging&lt;/TD&gt;
&lt;TD&gt;Syllabus1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;IT&lt;/TD&gt;
&lt;TD&gt;Emerging&lt;/TD&gt;
&lt;TD&gt;Syllabus2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Civics&lt;/TD&gt;
&lt;TD&gt;Emerging&lt;/TD&gt;
&lt;TD&gt;Syllabus3&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;Harish&lt;/TD&gt;
&lt;TD&gt;KK&lt;/TD&gt;
&lt;TD&gt;&lt;A href="mailto:abc@gmail.com" target="_blank"&gt;abc@gmail.com&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Other&lt;/TD&gt;
&lt;TD&gt;Emerging&lt;/TD&gt;
&lt;TD&gt;Syllabus2&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data University;
length Teacher $ 10 email $20;
input seq  $ Teacher  $ Surname  $ Email  $ English  $ History  $ Geography  $ Math  $ Science  $ Economics  $ IT  $ Civics  $ Other $;
cards;
1 Aristotle KK abc@gmail.com Medium Trainer Trainer Beginner Expert Medium Trainer Mastery Trainer
2 Vem KK1 abc@gmail.com Trainer Beginner Trainer Mastery Trainer Medium Medium Expert Beginner
3 Charm KK2 abc@gmail.com Medium Trainer Beginner Trainer Trainer Medium Trainer Trainer Trainer
4 Newton KK3 abc@gmail.com Trainer Beginner Beginner Mastery Trainer Medium Medium Trainer Trainer
5 Grammy KK4 abc@gmail.com Beginner Expert Trainer Expert Trainer Medium Trainer Expert Trainer
6 Rambo KK5 abc@gmail.com Trainer Beginner Trainer Trainer Trainer Trainer Trainer Trainer Mastery
7 Nikki KK6 abc@gmail.com Medium Medium Expert Expert Trainer Trainer Trainer Trainer Trainer
8 Leo KK7 abc@gmail.com Mastery Trainer Trainer Trainer Trainer Mastery Trainer Medium Trainer
9 Fishcer KK8 abc@gmail.com Trainer Trainer Trainer Trainer Trainer Expert Trainer Expert Trainer
;
run;

data lookup;
length variab $10 Category Sub_Category $20 ;
input variab $ Category $	Sub_Category $;
cards;
English Arts Syllabus1
History Arts Syllabus1
Geography Arts Syllabus2
Math Development Syllabus3
Science Development Syllabus4
Economics Emerging Syllabus1
IT Emerging Syllabus2
Civics Emerging Syllabus3
Other Emerging Syllabus2
;run;
proc sort data=university; by Teacher;run;
proc sort data=lookup;by variab;run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 20 Nov 2020 09:28:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700416#M214351</guid>
      <dc:creator>dash</dc:creator>
      <dc:date>2020-11-20T09:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose the table and insert few column by look up</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700417#M214352</link>
      <description>Sorry for my mistake in desired output where Teacher "Abraham"  replace name "Harish".</description>
      <pubDate>Fri, 20 Nov 2020 09:34:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700417#M214352</guid>
      <dc:creator>dash</dc:creator>
      <dc:date>2020-11-20T09:34:03Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose the table and insert few column by look up</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700420#M214354</link>
      <description>&lt;P&gt;I don't follow this logic. Why is Trainer=1 and the rest 0 in the second obs?&lt;/P&gt;</description>
      <pubDate>Fri, 20 Nov 2020 10:05:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700420#M214354</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-11-20T10:05:09Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose the table and insert few column by look up</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700421#M214355</link>
      <description>&lt;P&gt;If the goal is to get all of the values from Lookup attached to every record from University:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Proc sql;
   create table want as 
   select a.*, b.* 
   from university as a, lookup as b
   ;
quit;&lt;/PRE&gt;
&lt;P&gt;This is a Cartesian join where all records from one set are paired with all records from another set.&lt;/P&gt;
&lt;P&gt;There will be a note in the log about such. If your sets are large this can take a fair amount of time.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Nov 2020 10:06:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700421#M214355</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-11-20T10:06:24Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose the table and insert few column by look up</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700423#M214357</link>
      <description>&lt;P&gt;See this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data University;
input seq  $ Teacher :$10. Surname $ Email :$20. English  $ History  $ Geography  $ Math  $ Science  $ Economics  $ IT  $ Civics  $ Other $;
cards;
1 Aristotle KK abc@gmail.com Medium Trainer Trainer Beginner Expert Medium Trainer Mastery Trainer
2 Vem KK1 abc@gmail.com Trainer Beginner Trainer Mastery Trainer Medium Medium Expert Beginner
3 Charm KK2 abc@gmail.com Medium Trainer Beginner Trainer Trainer Medium Trainer Trainer Trainer
4 Newton KK3 abc@gmail.com Trainer Beginner Beginner Mastery Trainer Medium Medium Trainer Trainer
5 Grammy KK4 abc@gmail.com Beginner Expert Trainer Expert Trainer Medium Trainer Expert Trainer
6 Rambo KK5 abc@gmail.com Trainer Beginner Trainer Trainer Trainer Trainer Trainer Trainer Mastery
7 Nikki KK6 abc@gmail.com Medium Medium Expert Expert Trainer Trainer Trainer Trainer Trainer
8 Leo KK7 abc@gmail.com Mastery Trainer Trainer Trainer Trainer Mastery Trainer Medium Trainer
9 Fishcer KK8 abc@gmail.com Trainer Trainer Trainer Trainer Trainer Expert Trainer Expert Trainer
;

data lookup;
length variab $10 Category Sub_Category $20 ;
input variab $ Category $ Sub_Category $;
cards;
English Arts Syllabus1
History Arts Syllabus1
Geography Arts Syllabus2
Math Development Syllabus3
Science Development Syllabus4
Economics Emerging Syllabus1
IT Emerging Syllabus2
Civics Emerging Syllabus3
Other Emerging Syllabus2
;

proc transpose
  data=university
  out=levels
;
by seq;
var english--other;
run;

data levels2;
set levels;
value = 1;
run;

proc transpose
  data=levels2
  out=wide (rename=(_name_=variable))
;
by seq _name_ notsorted;
var value;
id col1;
run;

data want;
merge
  university (keep=seq teacher surname email)
  wide
;
by seq;
length Category Sub_Category $20;
if _n_ = 1
then do;
  declare hash l (dataset:"lookup (rename=(variab=variable))");
  l.definekey("variable");
  l.definedata("category","sub_category");
  l.definedone();
end;
array nums {*} _numeric_;
do _n_ = 1 to dim(nums);
  nums{_n_} = coalesce(nums{_n_},0);
end;
if l.find() ne 0
then do;
  category = "";
  sub_category = "";
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You might want to add a RETAIN statement for the simple purpose of ordering the variables in the last data step.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Nov 2020 10:10:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700423#M214357</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-11-20T10:10:06Z</dc:date>
    </item>
    <item>
      <title>Re: Transpose the table and insert few column by look up</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700425#M214358</link>
      <description>&lt;P&gt;Try this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   set University;
   do i=1 to n;
      set lookup point=i nobs=n;
      array a Trainer Beginner Medium Expert Mastery;
      do over a;
         a = 0;
         if vname(a) = vvaluex(variab) then a=1;
      end;
      output;
   end;
   keep seq Teacher Surname Email Variable Category Subcategory Trainer Beginner Medium Expert Mastery;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 20 Nov 2020 10:16:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Transpose-the-table-and-insert-few-column-by-look-up/m-p/700425#M214358</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2020-11-20T10:16:44Z</dc:date>
    </item>
  </channel>
</rss>

