<?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: Modifying Values to Variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774572#M246202</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/10892"&gt;@PaigeMiller&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Long data sets can be used for lookup tables as well.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Usually easier to do a lookup from a long data set since you can merge easily.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 15 Oct 2021 16:37:44 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2021-10-15T16:37:44Z</dc:date>
    <item>
      <title>Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774522#M246184</link>
      <description>&lt;P&gt;I do have a data which I would like to create variables to flag them out. The values in cat are changes as columns. I am thinking there is a better way to do this instead of if-else statement.&lt;/P&gt;
&lt;P&gt;Have&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cats;
   input ID $ Cat $ Date $;
   datalines;
1 A 1/17/2020
1 B 4/12/2020
2 A 2/21/2020
3 C 12/30/2020
4 B 1/5/2020
4 C 7/19/2020
5 A 6/25/2020
6 B 7/17/2020
7 B 6/20/2020
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Want&lt;/P&gt;
&lt;TABLE width="482"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="64"&gt;cat_A&lt;/TD&gt;
&lt;TD width="76"&gt;cat_B&lt;/TD&gt;
&lt;TD width="64"&gt;cat_C&lt;/TD&gt;
&lt;TD width="69"&gt;A_date&lt;/TD&gt;
&lt;TD width="69"&gt;B_date&lt;/TD&gt;
&lt;TD width="76"&gt;C_date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1/17/2020&lt;/TD&gt;
&lt;TD&gt;4/12/2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&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;2/21/2020&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;3&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;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;12/30/2020&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;1/5/2020&lt;/TD&gt;
&lt;TD&gt;7/19/2020&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&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;6/25/2020&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;6&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;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;7/17/2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&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;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;6/20/2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Fri, 15 Oct 2021 15:07:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774522#M246184</guid>
      <dc:creator>kashun</dc:creator>
      <dc:date>2021-10-15T15:07:32Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774528#M246186</link>
      <description>&lt;P&gt;In my opinion, the better way to do this is to leave the data set long, instead of making it wide with awkward column names.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What is the next step after your obtain this wide data set? What analysis or report are you planning to produce? Most analyses and reports are more easily produced from long data sets.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Oct 2021 15:14:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774528#M246186</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2021-10-15T15:14:06Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774533#M246189</link>
      <description>&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/10892"&gt;@PaigeMiller&lt;/a&gt;.  The data has duplicates and I do need it to be one id per row.  This will be used as a lookup table to run other programs.</description>
      <pubDate>Fri, 15 Oct 2021 15:20:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774533#M246189</guid>
      <dc:creator>kashun</dc:creator>
      <dc:date>2021-10-15T15:20:31Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774534#M246190</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cats;
   input ID $ Cat $ Date $;
   datalines;
1 A 1/17/2020
1 B 4/12/2020
2 A 2/21/2020
3 C 12/30/2020
4 B 1/5/2020
4 C 7/19/2020
5 A 6/25/2020
6 B 7/17/2020
7 B 6/20/2020
;
run;

proc transpose data=cats out=cats_wide prefix=GROUP_;
by ID;
id CAT;
var DATE;
run;

data want;
set cats_wide;
array flags(*) flag1-flag3;
array GROUP(*) group_A--group_c;

do i=1 to 3;
flags(i) = not missing(group(i)) ;
end;

drop i _name_;
run;

proc print data=want;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Transposing data tutorials:&lt;BR /&gt;Long to Wide:&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-long-to-wide-using-proc-transpose/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-long-to-wide-using-proc-transpose/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/reshaping-data-long-to-wide-using-the-data-step/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/reshaping-data-long-to-wide-using-the-data-step/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Wide to Long:&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-wide-to-long-using-proc-transpose/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/how-to-reshape-data-wide-to-long-using-proc-transpose/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://stats.idre.ucla.edu/sas/modules/reshaping-data-wide-to-long-using-a-data-step/" target="_blank"&gt;https://stats.idre.ucla.edu/sas/modules/reshaping-data-wide-to-long-using-a-data-step/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;And sometimes a double transpose is needed for extra wide data sets:&lt;BR /&gt;&lt;A href="https://gist.github.com/statgeek/2321b6f62ab78d5bf2b0a5a8626bd7cd" target="_blank"&gt;https://gist.github.com/statgeek/2321b6f62ab78d5bf2b0a5a8626bd7cd&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/76157"&gt;@kashun&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I do have a data which I would like to create variables to flag them out. The values in cat are changes as columns. I am thinking there is a better way to do this instead of if-else statement.&lt;/P&gt;
&lt;P&gt;Have&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data cats;
   input ID $ Cat $ Date $;
   datalines;
1 A 1/17/2020
1 B 4/12/2020
2 A 2/21/2020
3 C 12/30/2020
4 B 1/5/2020
4 C 7/19/2020
5 A 6/25/2020
6 B 7/17/2020
7 B 6/20/2020
;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Want&lt;/P&gt;
&lt;TABLE width="482"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;ID&lt;/TD&gt;
&lt;TD width="64"&gt;cat_A&lt;/TD&gt;
&lt;TD width="76"&gt;cat_B&lt;/TD&gt;
&lt;TD width="64"&gt;cat_C&lt;/TD&gt;
&lt;TD width="69"&gt;A_date&lt;/TD&gt;
&lt;TD width="69"&gt;B_date&lt;/TD&gt;
&lt;TD width="76"&gt;C_date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1/17/2020&lt;/TD&gt;
&lt;TD&gt;4/12/2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&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;2/21/2020&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;3&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;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;12/30/2020&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;1/5/2020&lt;/TD&gt;
&lt;TD&gt;7/19/2020&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&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;6/25/2020&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;6&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;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;7/17/2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;7&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;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;6/20/2020&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Oct 2021 15:22:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774534#M246190</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-10-15T15:22:02Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774536#M246191</link>
      <description>&lt;P&gt;Plenty of ways to de-duplicate data without creating this long data set with awkward variable names.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But you didn't explain what the next analysis or report is going to be, so it would help greatly to know what that is. Without that knowledge of what is next, I'm not going to try to create code for this problem. Long data sets can be used for lookup tables as well.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Oct 2021 15:33:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774536#M246191</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2021-10-15T15:33:19Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774559#M246198</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/76157"&gt;@kashun&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/10892"&gt;@PaigeMiller&lt;/a&gt;. The data has duplicates and I do need it to be one id per row. This will be used as a lookup table to run other programs.&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Duplicates of cat will cause problems when transposing. Searching for duplicates is always easier in the long dataset.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Oct 2021 16:20:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774559#M246198</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2021-10-15T16:20:43Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774572#M246202</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/10892"&gt;@PaigeMiller&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Long data sets can be used for lookup tables as well.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Usually easier to do a lookup from a long data set since you can merge easily.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Oct 2021 16:37:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774572#M246202</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-10-15T16:37:44Z</dc:date>
    </item>
    <item>
      <title>Re: Modifying Values to Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774671#M246236</link>
      <description>&lt;P&gt;Merge Skill proposed by me ,Art.T and Matt.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://support.sas.com/resources/papers/proceedings15/2785-2015.pdf" target="_blank"&gt;https://support.sas.com/resources/papers/proceedings15/2785-2015.pdf&lt;/A&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 cats;
   input ID $ Cat $ Date $;
   datalines;
1 A 1/17/2020
1 B 4/12/2020
2 A 2/21/2020
3 C 12/30/2020
4 B 1/5/2020
4 C 7/19/2020
5 A 6/25/2020
6 B 7/17/2020
7 B 6/20/2020
;
run;
proc sql noprint;
select distinct catt('cats(where=(cat_',cat,'="',cat,'") rename=(cat=cat_',cat,' date=',cat,'_date))')
into : merge separated by ' '
 from cats;
quit;
data want;
merge &amp;amp;merge.;
by id;
run;
data want;
 set want;
 array x{*} $ cat_:;
 do i=1 to dim(x);
  if missing(x{i}) then x{i}='0';
   else x{i}='1';
 end;
 drop i;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Sat, 16 Oct 2021 11:16:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Modifying-Values-to-Variables/m-p/774671#M246236</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2021-10-16T11:16:49Z</dc:date>
    </item>
  </channel>
</rss>

