<?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: Duplicate check across columns within same row in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515888#M139274</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
array rank rank1-rank10;
array match match1-match10;

do i=1 to dim(rank)-1;
i_=i+1;
	do j=i_ to dim(rank)-1;
	if rank[i] ne . and rank[j] ne . then do;
		if rank[i] eq rank[j] then match[j]=1;		
	end;
	end;
end;

if sum(of match1-match10) ge 1 then same =1;
	else same=0;
	
	drop i j i_ match1-match10;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 26 Nov 2018 04:55:56 GMT</pubDate>
    <dc:creator>r_behata</dc:creator>
    <dc:date>2018-11-26T04:55:56Z</dc:date>
    <item>
      <title>Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515854#M139253</link>
      <description>&lt;P&gt;Hi All, I have a dataset with variables Rank1-Rank10. and each Rank variables may varies from 1-5, and there is lots of missing values here.&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&lt;/TD&gt;&lt;TD&gt;Rank1&lt;/TD&gt;&lt;TD&gt;Rank2&lt;/TD&gt;&lt;TD&gt;Rank3&lt;/TD&gt;&lt;TD&gt;Rank4&lt;/TD&gt;&lt;TD&gt;Rank5&lt;/TD&gt;&lt;TD&gt;Rank6&lt;/TD&gt;&lt;TD&gt;Rank7&lt;/TD&gt;&lt;TD&gt;Rank8&lt;/TD&gt;&lt;TD&gt;Rank9&lt;/TD&gt;&lt;TD&gt;Rank10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what I want is to figure out if there is any same values from Rank1-Rank10 within same row. For example, there is same values for ID 2 ,3 and 5. For those IDs have same values, I want to create a variable called SAME, let same =1. otherwise same= 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;can anyone help with this?? Thanks so much!!&lt;/P&gt;</description>
      <pubDate>Mon, 26 Nov 2018 00:06:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515854#M139253</guid>
      <dc:creator>Linmuxi</dc:creator>
      <dc:date>2018-11-26T00:06:02Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515856#M139255</link>
      <description>&lt;P&gt;Try next code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=count1-count5);
  set have;
        array n {*}  count1-count5;
        array r {*}  rank1-rank10;

        same = 0;
        do i=1 to dim(r);
            if r(i) ne . then n(r(i)) +1;
            if n(r(i)) &amp;gt; 1 then do;
               same = 1; 
              
               leave;
           end;
       end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 26 Nov 2018 00:39:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515856#M139255</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2018-11-26T00:39:30Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515888#M139274</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set have;
array rank rank1-rank10;
array match match1-match10;

do i=1 to dim(rank)-1;
i_=i+1;
	do j=i_ to dim(rank)-1;
	if rank[i] ne . and rank[j] ne . then do;
		if rank[i] eq rank[j] then match[j]=1;		
	end;
	end;
end;

if sum(of match1-match10) ge 1 then same =1;
	else same=0;
	
	drop i j i_ match1-match10;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 26 Nov 2018 04:55:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515888#M139274</guid>
      <dc:creator>r_behata</dc:creator>
      <dc:date>2018-11-26T04:55:56Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515927#M139295</link>
      <description>&lt;P&gt;I would do it like this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
  set have;
  array ranks(*) rank1-rank10;
  same=0;
  do _N_=dim(ranks) to 2 by -1 until(same);
    if not missing(ranks(_N_)) then
      same=whichn(ranks(_N_),of ranks(*))&amp;lt;_N_;
    end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 26 Nov 2018 09:40:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515927#M139295</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2018-11-26T09:40:30Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515954#M139305</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs;
input id	Rank1	Rank2	Rank3	Rank4	Rank5	Rank6	Rank7	Rank8	Rank9	Rank10 ;
cards;
1	3	.	.	.	.	.	4	.	.	.
2	3	.	3	.	.	.	.	.	.	.
3	1	.	.	.	.	1	4	.	.	.
4	3	.	.	.	.	.	2	.	.	.
5	3	.	3	.	.	.	.	.	.	2
6	.	.	.	.	.	.	4	.	1	.
;
run;
data want;
 if _n_=1 then do;
  declare hash h();
  h.definekey('k');
  h.definedone();
 end;
set have;
array x{*} rank:;
do i=1 to dim(x);
  if not missing(x{i}) then do;k=x{i};h.ref();end;
end;
same=n(of x{*}) ne h.num_items;
h.clear();
drop i k;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 26 Nov 2018 12:02:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/515954#M139305</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-11-26T12:02:36Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/516078#M139360</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs;
input id	Rank1	Rank2	Rank3	Rank4	Rank5	Rank6	Rank7	Rank8	Rank9	Rank10 ;
cards;
1	3	.	.	.	.	.	4	.	.	.
2	3	.	3	.	.	.	.	.	.	.
3	1	.	.	.	.	1	4	.	.	.
4	3	.	.	.	.	.	2	.	.	.
5	3	.	3	.	.	.	.	.	.	2
6	.	.	.	.	.	.	4	.	1	.
;


data want ;
set have;
 array r [*] rank:;
 array t [ 10] _temporary_ ;
 call pokelong ( (peekclong (addrlong(r[1]), 80)), addrlong(t[1]), 80) ; 
 call sortn(of t(*)); 
 do _n_=whichn(coalesce(of t(*)),of t(*))+1 to dim(t);
 same=t(_n_)=t(_n_-1);
 if same then leave;
 end;
 run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 26 Nov 2018 18:38:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/516078#M139360</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-11-26T18:38:17Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/516159#M139382</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I like the idea of sorting values, which reduces the task to looking for identical neighboring values.&amp;nbsp; I presume you put the variables in a temporary array, to avoid sorting the original variables.&amp;nbsp;&amp;nbsp;But in this case, it's a bit simpler (no poke and peek) to sort the rank variables in place, process them, and then re-read in original order:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
  input id Rank1 Rank2 Rank3 Rank4 Rank5 Rank6 Rank7 Rank8 Rank9 Rank10 ;
datalines;
1 3 . . . . . 4 . . . 
2 3 . 3 . . . . . . . 
3 1 . . . . 1 4 . . . 
4 3 . . . . . 2 . . . 
5 3 . 3 . . . . . . 2 
6 . . . . . . 4 . 1 . 
run;

data want (drop=_i);
  set have;
  same=0;
  array rnk {*} rank: ;
  call sortn(of rnk{*});   /* Sort the rank variables */

  /* Now look for identical neighbors */
  do _i=dim(rnk) to 2 by -1 while (same=0 and rnk{_i-1}^=.);
    if rnk{_i}=rnk{_i-1} then same=1;
  end;

  /* Reread the rank variables, in pre-sorted sequence */
  set have (keep=rank:) point=_n_;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The do loop starts at the upper bound of the rnk array because all the missing values will be sorted towards the lower bound.&lt;/P&gt;</description>
      <pubDate>Mon, 26 Nov 2018 21:56:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/516159#M139382</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2018-11-26T21:56:45Z</dc:date>
    </item>
    <item>
      <title>Re: Duplicate check across columns within same row</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/516166#M139384</link>
      <description>&lt;P&gt;Thank you Mark. Actually I wanted to reach out to you for a small understanding help on the conditional set statement on the other thread and more important one on a&amp;nbsp; conditional lag. I will probably do that on Friday assuming it's only fair not to bother you weekdays. Just wanted to let you know I have a request coming through.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Not the 1st or the last that you have helped me speed over the past couple of years , so another one. Have a nice afternoon/evening&lt;/P&gt;</description>
      <pubDate>Mon, 26 Nov 2018 22:05:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Duplicate-check-across-columns-within-same-row/m-p/516166#M139384</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-11-26T22:05:00Z</dc:date>
    </item>
  </channel>
</rss>

