<?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 How do I select and keep the first two non-missing values across a fixed range of variables? in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315710#M9027</link>
    <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using SAS v9.4. I have a dataset that looks like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;refid&lt;/TD&gt;&lt;TD&gt;title&lt;/TD&gt;&lt;TD&gt;abstract&lt;/TD&gt;&lt;TD&gt;reviewer_A&lt;/TD&gt;&lt;TD&gt;reviewer_B&lt;/TD&gt;&lt;TD&gt;reviewer_C&lt;/TD&gt;&lt;TD&gt;reviewer_D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;how to have fun&lt;/TD&gt;&lt;TD&gt;this is a study about how to have fun&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;include&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;2&lt;/TD&gt;&lt;TD&gt;gaming and being awesome&lt;/TD&gt;&lt;TD&gt;we found that gaming makes you awesome&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;exclude&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And I would like to transform it so it looks like this:&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;TABLE border="1" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;refid&lt;/TD&gt;&lt;TD&gt;title&lt;/TD&gt;&lt;TD&gt;abstract&lt;/TD&gt;&lt;TD&gt;reviewer_1&lt;/TD&gt;&lt;TD&gt;reviewer_2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;how to have fun&lt;/TD&gt;&lt;TD&gt;this is a study about how to have fun&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&lt;SPAN&gt;gaming &lt;/SPAN&gt;and being awesome&lt;/TD&gt;&lt;TD&gt;we found that &lt;SPAN&gt;gaming &lt;/SPAN&gt;makes you awesome&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;exclude&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That is, I would like to select the first TWO non-missing values across the range reviewer_A--reviewer_D in each row (each refid) and put the first in reviewer_1 and the second in reviewer_2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Very much would appreciate any suggestions on how to program this using data steps or SQL. I have tried the proc sql coalescec approach but I haven't been able to get it to select the first and second values.&lt;/P&gt;</description>
    <pubDate>Wed, 30 Nov 2016 22:08:54 GMT</pubDate>
    <dc:creator>dantes</dc:creator>
    <dc:date>2016-11-30T22:08:54Z</dc:date>
    <item>
      <title>How do I select and keep the first two non-missing values across a fixed range of variables?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315710#M9027</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using SAS v9.4. I have a dataset that looks like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;refid&lt;/TD&gt;&lt;TD&gt;title&lt;/TD&gt;&lt;TD&gt;abstract&lt;/TD&gt;&lt;TD&gt;reviewer_A&lt;/TD&gt;&lt;TD&gt;reviewer_B&lt;/TD&gt;&lt;TD&gt;reviewer_C&lt;/TD&gt;&lt;TD&gt;reviewer_D&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;how to have fun&lt;/TD&gt;&lt;TD&gt;this is a study about how to have fun&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;include&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;2&lt;/TD&gt;&lt;TD&gt;gaming and being awesome&lt;/TD&gt;&lt;TD&gt;we found that gaming makes you awesome&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;exclude&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And I would like to transform it so it looks like this:&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;TABLE border="1" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;refid&lt;/TD&gt;&lt;TD&gt;title&lt;/TD&gt;&lt;TD&gt;abstract&lt;/TD&gt;&lt;TD&gt;reviewer_1&lt;/TD&gt;&lt;TD&gt;reviewer_2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;how to have fun&lt;/TD&gt;&lt;TD&gt;this is a study about how to have fun&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;&lt;SPAN&gt;gaming &lt;/SPAN&gt;and being awesome&lt;/TD&gt;&lt;TD&gt;we found that &lt;SPAN&gt;gaming &lt;/SPAN&gt;makes you awesome&lt;/TD&gt;&lt;TD&gt;include&lt;/TD&gt;&lt;TD&gt;exclude&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That is, I would like to select the first TWO non-missing values across the range reviewer_A--reviewer_D in each row (each refid) and put the first in reviewer_1 and the second in reviewer_2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Very much would appreciate any suggestions on how to program this using data steps or SQL. I have tried the proc sql coalescec approach but I haven't been able to get it to select the first and second values.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Nov 2016 22:08:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315710#M9027</guid>
      <dc:creator>dantes</dc:creator>
      <dc:date>2016-11-30T22:08:54Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select and keep the first two non-missing values across a fixed range of variables?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315715#M9028</link>
      <description>&lt;P&gt;Given that you have only a few reviewers, this might be overkill.&amp;nbsp; But it will work here (as well as when you have many more possibilities):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;array abcd {4} reviewer_A reviewer_B reviewer_C reviewer_D;&lt;/P&gt;
&lt;P&gt;array new {2} $ 8 reviewer_1 reviewer_2;&lt;/P&gt;
&lt;P&gt;i=0;&lt;/P&gt;
&lt;P&gt;do j=1 to 4;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if abcd{j} &amp;gt; ' ' then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i + 1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i &amp;lt; 3 then new{i} = abcd{j};&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;drop i j reviewer_A reviewer_B reviewer_C reviewer_D;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 30 Nov 2016 22:20:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315715#M9028</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-11-30T22:20:14Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select and keep the first two non-missing values across a fixed range of variables?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315722#M9029</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you, Astounding.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Actually, this is a simplified example so your intuition is correct, there are in fact 7 reviewers so I would have reviewer_A to reviewer_G. Note that only two reviewers would ever review a single study.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In this case, would a correct code modification for the 7 reviewer situation be:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;array abcdefg {7} reviewer_A reviewer_B reviewer_C reviewer_D &lt;SPAN&gt;reviewer_E reviewer_F reviewer_G&lt;/SPAN&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;array new {2} $ 8 reviewer_1 reviewer_2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;do j=1 to 7;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if abcdefg{j} &amp;gt; ' ' then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i + 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i &amp;lt; 3 then new{i} = abcdefg{j};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;drop i j &lt;SPAN&gt;reviewer_A reviewer_B reviewer_C reviewer_D &lt;/SPAN&gt;&lt;SPAN&gt;reviewer_E reviewer_F reviewer_G&lt;/SPAN&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;??&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many thanks again.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Nov 2016 22:33:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315722#M9029</guid>
      <dc:creator>dantes</dc:creator>
      <dc:date>2016-11-30T22:33:37Z</dc:date>
    </item>
    <item>
      <title>Re: How do I select and keep the first two non-missing values across a fixed range of variables?</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315738#M9030</link>
      <description>&lt;P&gt;Yes, that looks fine. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your array names are up to you, so you could use "abc" instead of "abcdefg" ... just a choice you make like you choose names for new variables.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Nov 2016 23:59:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-do-I-select-and-keep-the-first-two-non-missing-values-across/m-p/315738#M9030</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-11-30T23:59:31Z</dc:date>
    </item>
  </channel>
</rss>

