<?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: Assign a &amp;quot;Y/N&amp;quot; variable in dataset A by using a reference dataset B? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935856#M367906</link>
    <description>&lt;P&gt;Instead of character "Y" and "N", use numeric 1 and 0. These are boolean values which can be used directly in conditions.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 15 Jul 2024 19:07:01 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2024-07-15T19:07:01Z</dc:date>
    <item>
      <title>Assign a "Y/N" variable in dataset A by using a reference dataset B?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935807#M367895</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I have sample data, A, which contains &lt;CODE&gt;Result&lt;/CODE&gt; and &lt;CODE&gt;Result_Name&lt;/CODE&gt; columns. I have another sample data, B, which contains &lt;CODE&gt;Result_Name&lt;/CODE&gt; and &lt;CODE&gt;Result_Code&lt;/CODE&gt;. Data B acts as a result coding guide. I want to use Data B as a reference to check whether Data A has any entries that don't match the Data B coding guide. The result I'm looking for is shown as "Want." One particular condition is that if the &lt;CODE&gt;Result_Name&lt;/CODE&gt; contains "Non-coded ID format" or "Non-coded text," the match result should be set to 'TBD.' Please let me know how to approach this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Sample_A;
      infile datalines dsd;
  input LabID : $15. Test_Code : $15.  Result : $25. Result_Name : $25.;
datalines;
21156, 100157-7_100157-7, BA.2.86, PCR_result, 
21156, 100157-7_100157-7, XBB.1.16.3, PCR_result, 
21156, 100157-7_100157-7, FL.4, PCR_result, 
21156, 100157-7_100157-7, EG.5.1.3, PCR_result,
21156, 100157-6_100157-8, 10828004, Conclusion_result,
21156, 100157-6_100157-8, 260415000, Conclusion_result,
21156, 100157-6_100157-8, 260373001, Conclusion_result,
21156, 100157-6_100157-8, 10000004, Conclusion_result, 
21156, 100357-6_100157-8, 5656, Non-coded ID format, 
21156, 100357-6_100157-8, 7878, Non-coded ID format, 
21156, 104157-6_100157-8, LKJH, Non-coded text, 
21156, 104157-6_100157-8, PPGH, Non-coded text, 
24597, 100157-7_100157-7, XBB.1.5.70, PCR_result, 
24597, 100157-7_100157-7, FL.15, PCR_result, 
24597, 100157-7_100157-7, BA.2.86, PCR_result, 
24597, 100157-6_100157-8, 260373001, Conclusion_result, 
24597, 100157-6_100157-8, 10828005, Conclusion_result, 
24597, 100157-6_100157-8, 10987004, Conclusion_result, 
24597, 100357-6_100157-8, 3245, Non-coded ID format, 
24597, 104157-6_100157-8, OPUY, Non-coded text,  
;

data Sample_B;
      infile datalines dsd;
  input Result_Name : $25. Result_Code : $25. ;
datalines;
PCR_result, BA.2.86, 
PCR_result, BA.5.86,
PCR_result, FL.3, 
PCR_result, FL.8,
PCR_result, FL.10, 
PCR_result, XBB.1.16.3,
PCR_result, XBB.1.5.70,
PCR_result, XBB.3.66.3, 
PCR_result, XBB.8.15.88,
PCR_result, EG.5.1.3, 
PCR_result, JK.0.14.39, 
Conclusion_result, 10828003, 
Conclusion_result, 10828004,
Conclusion_result, 10828005,
Conclusion_result, 10828009,
Conclusion_result, 10987004, 
Conclusion_result, 260373001,
Conclusion_result, 260383001, 
Conclusion_result, 260215000,
Conclusion_result, 260415000, 
Non-coded ID format,Identifier,
Non-coded text, Text,
;

data Want;
      infile datalines dsd;
  input LabID : $15. Test_Code : $15.  Result : $25. Result_Name : $25. Match : $5.;
datalines;
21156, 100157-7_100157-7, BA.2.86, PCR_result, Y,
21156, 100157-7_100157-7, XBB.1.16.3, PCR_result, Y, 
21156, 100157-7_100157-7, FL.4, PCR_result, N, 
21156, 100157-7_100157-7, EG.5.1.3, PCR_result, Y,
21156, 100157-6_100157-8, 10828001, Conclusion_result, N,
21156, 100157-6_100157-8, 260415000, Conclusion_result, Y,
21156, 100157-6_100157-8, 260373001, Conclusion_result, Y,
21156, 100157-6_100157-8, 10000004, Conclusion_result, N,
21156, 100357-6_100157-8, 5656, Non-coded ID format, TBD,
21156, 100357-6_100157-8, 7878, Non-coded ID format, TBD,
21156, 104157-6_100157-8, LKJH, Non-coded text, TBD, 
21156, 104157-6_100157-8, PPGH, Non-coded text, TBD,
24597, 100157-7_100157-7, XBB.1.5.70, PCR_result, Y,
24597, 100157-7_100157-7, FL.15, PCR_result, N,
24597, 100157-7_100157-7, BA.2.86, PCR_result, Y,
24597, 100157-6_100157-8, 260373001, Conclusion_result, Y,
24597, 100157-6_100157-8, 11828005, Conclusion_result, N,
24597, 100157-6_100157-8, 10987064, Conclusion_result,  N,
24597, 100357-6_100157-8, 3245, Non-coded ID format, TBD,
24597, 104157-6_100157-8, OPUY, Non-coded text, TBD,
;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 15 Jul 2024 13:58:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935807#M367895</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2024-07-15T13:58:14Z</dc:date>
    </item>
    <item>
      <title>Re: Assign a "Y/N" variable in dataset A by using a reference dataset B?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935840#M367900</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/67134"&gt;@ybz12003&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would probably read the reference dataset B into a hash object, which can then be queried after checking for "Non-coded ..." cases:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Want;
set Sample_A;
if _n_=1 then do;
  dcl hash h(dataset:'Sample_B(rename=(Result_Code=Result))');
  h.definekey('Result_Name', 'Result');
  h.definedone();
  if 0 then set Sample_B(rename=(Result_Code=Result));
end;
length Match $5;
if Result_Name in ("Non-coded ID format", "Non-coded text") then Match='TBD';
else Match=ifc(h.check()=0,'Y','N');
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You may want to modify the IF condition for the&amp;nbsp;"Non-coded ..." cases if the criterion is not an exact match with those strings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note that length 15 is not sufficient to accommodate the values listed for variable &lt;FONT face="courier new,courier"&gt;Test_Code&lt;/FONT&gt;. More importantly, three values of variable &lt;FONT face="courier new,courier"&gt;Result&lt;/FONT&gt; differ between dataset &lt;FONT face="courier new,courier"&gt;Sample_A&lt;/FONT&gt;&amp;nbsp;and your sample dataset &lt;FONT face="courier new,courier"&gt;Want&lt;/FONT&gt;. This results in three observations where my suggested code finds a match, whereas your &lt;FONT face="courier new,courier"&gt;Want&lt;/FONT&gt;&amp;nbsp;dataset has &lt;FONT face="courier new,courier"&gt;Match='N'&lt;/FONT&gt;, based on the different values (see observations 5, 17 and 18).&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2024 16:18:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935840#M367900</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2024-07-15T16:18:25Z</dc:date>
    </item>
    <item>
      <title>Re: Assign a "Y/N" variable in dataset A by using a reference dataset B?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935856#M367906</link>
      <description>&lt;P&gt;Instead of character "Y" and "N", use numeric 1 and 0. These are boolean values which can be used directly in conditions.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2024 19:07:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/935856#M367906</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2024-07-15T19:07:01Z</dc:date>
    </item>
    <item>
      <title>Re: Assign a "Y/N" variable in dataset A by using a reference dataset B?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/936267#M368039</link>
      <description>Thank you for the suggestion; that is an awesome program.</description>
      <pubDate>Thu, 18 Jul 2024 18:59:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assign-a-quot-Y-N-quot-variable-in-dataset-A-by-using-a/m-p/936267#M368039</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2024-07-18T18:59:24Z</dc:date>
    </item>
  </channel>
</rss>

