<?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: how to assign site name and sequence number to dummy id in SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713901#M220317</link>
    <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31304"&gt;@PeterClemmensen&lt;/a&gt;, thank you so much, this did the trick!&lt;/P&gt;</description>
    <pubDate>Mon, 25 Jan 2021 14:24:02 GMT</pubDate>
    <dc:creator>Merdock</dc:creator>
    <dc:date>2021-01-25T14:24:02Z</dc:date>
    <item>
      <title>how to assign site name and sequence number to dummy id in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713143#M219954</link>
      <description>&lt;P&gt;I have a dataset with many sites (like in excerpt below) where the 3 participants at the end with XXX are additional dummy participants. What I want is to modify these XXX patids so that they are in the format I have in the "want" dataset below, as opposed to having XXX at the end, while keeping the group assignment from have dataset unchanged.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 input site $ patid $ group $;
 datalines;
ABC ABCPROT01001 A
ABC ABCPROT01002 B
ABC ABCPROT01003 A
ABC ABCPROT01005 A
ABC ABCPROT01006 A
ABC ABCPROT01XXX B
ABC ABCPROT01XXX A
ABC ABCPROT01XXX B
CDF CDFPROT01004 A
CDF CDFPROT01005 A
CDF CDFPROT01006 A
CDF CDFPROT01007 B
CDF CDFPROT01008 A
CDF CDFPROT01009 B
CDF CDFPROT01010 A
CDF CDFPROT01012 A
CDF CDFPROT01013 B
CDF CDFPROT01XXX B
CDF CDFPROT01XXX B
CDF CDFPROT01XXX A
AMD AMDPROT01001 A
AMD AMDPROT01002 B
AMD AMDPROT01003 A
AMD AMDPROT01XXX B
AMD AMDPROT01XXX A
AMD AMDPROT01XXX A
;
run;

data want;
input site $ patid $ group $;
datalines;
ABC ABCPROT01001 A
ABC ABCPROT01002 B
ABC ABCPROT01003 A
ABC ABCPROT01005 A
ABC ABCPROT01006 A
ABC ABCPROT01007 B
ABC ABCPROT01008 A
ABC ABCPROT01009 B
CDF CDFPROT01004 A
CDF CDFPROT01005 A
CDF CDFPROT01006 A
CDF CDFPROT01007 B
CDF CDFPROT01008 A
CDF CDFPROT01009 B
CDF CDFPROT01010 A
CDF CDFPROT01012 A
CDF CDFPROT01013 B
CDF CDFPROT01014 B
CDF CDFPROT01015 B
CDF CDFPROT01016 A
AMD AMDPROT01001 A
AMD AMDPROT01002 B
AMD AMDPROT01003 A
AMD AMDPROT01004 B
AMD AMDPROT01005 A
AMD AMDPROT01006 A
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 Jan 2021 17:35:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713143#M219954</guid>
      <dc:creator>Merdock</dc:creator>
      <dc:date>2021-01-21T17:35:37Z</dc:date>
    </item>
    <item>
      <title>Re: how to assign site name and sequence number to dummy id in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713149#M219959</link>
      <description>&lt;P&gt;Your data step code cuts of the last characters of the PATID field.&lt;/P&gt;
&lt;P&gt;I think this does what you are asking for.&lt;/P&gt;
&lt;PRE&gt;data have;
 input site $ patid :$12. group $;
 datalines;
ABC ABCPROT01001 A
ABC ABCPROT01002 B
ABC ABCPROT01003 A
ABC ABCPROT01005 A
ABC ABCPROT01006 A
ABC ABCPROT01XXX B
ABC ABCPROT01XXX A
ABC ABCPROT01XXX B
CDF CDFPROT01004 A
CDF CDFPROT01005 A
CDF CDFPROT01006 A
CDF CDFPROT01007 B
CDF CDFPROT01008 A
CDF CDFPROT01009 B
CDF CDFPROT01010 A
CDF CDFPROT01012 A
CDF CDFPROT01013 B
CDF CDFPROT01XXX B
CDF CDFPROT01XXX B
CDF CDFPROT01XXX A
AMD AMDPROT01001 A
AMD AMDPROT01002 B
AMD AMDPROT01003 A
AMD AMDPROT01XXX B
AMD AMDPROT01XXX A
AMD AMDPROT01XXX A
;
run;

data want;
   set have;
   retain lastno ;
   if substr(patid,10) ne 'XXX' then lastno=input( substr(patid,10),f3.);
   else do;
      lastno+1;
      patid= cats(substr(patid,1,9),put(lastno,z3.));
   end;
   drop lastno;
run;&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 Jan 2021 17:56:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713149#M219959</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2021-01-21T17:56:03Z</dc:date>
    </item>
    <item>
      <title>Re: how to assign site name and sequence number to dummy id in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713205#M219984</link>
      <description>&lt;P&gt;Thank you, ballardw. This does work great but what about if I have a site that only has the 3 patids with XXX? I edited my initial dataset so for example, for site QQL, there's no existing patids yet but I'd like to add those 3 dummy patids in there and I wanted them to be assigned as&amp;nbsp;QQLPROT01001,&amp;nbsp;QQLPROT01002,&amp;nbsp;QQLPROT01003. The code now instead assigns them as&amp;nbsp;QQLPROT01017,&amp;nbsp;QQLPROT01018,&amp;nbsp;QQLPROT01019 (I guess since there's no previous QQL patid before them, it takes the last patid from CDF, which is CDFPROT01016)&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
 input site $ patid :$12. group $;
 datalines;
ABC ABCPROT01001 A
ABC ABCPROT01002 B
ABC ABCPROT01003 A
ABC ABCPROT01005 A
ABC ABCPROT01006 A
ABC ABCPROT01XXX B
ABC ABCPROT01XXX A
ABC ABCPROT01XXX B
CDF CDFPROT01004 A
CDF CDFPROT01005 A
CDF CDFPROT01006 A
CDF CDFPROT01007 B
CDF CDFPROT01008 A
CDF CDFPROT01009 B
CDF CDFPROT01010 A
CDF CDFPROT01012 A
CDF CDFPROT01013 B
CDF CDFPROT01XXX B
CDF CDFPROT01XXX B
CDF CDFPROT01XXX A
QQL QQLPROT01XXX A
QQL QQLPROT01XXX B
QQL QQLPROT01XXX A
AMD AMDPROT01001 A
AMD AMDPROT01002 B
AMD AMDPROT01003 A
AMD AMDPROT01XXX B
AMD AMDPROT01XXX A
AMD AMDPROT01XXX A
;
run;

data want;
input site $ patid :$12. group $;
datalines;
ABC ABCPROT01001 A
ABC ABCPROT01002 B
ABC ABCPROT01003 A
ABC ABCPROT01005 A
ABC ABCPROT01006 A
ABC ABCPROT01007 B
ABC ABCPROT01008 A
ABC ABCPROT01009 B
CDF CDFPROT01004 A
CDF CDFPROT01005 A
CDF CDFPROT01006 A
CDF CDFPROT01007 B
CDF CDFPROT01008 A
CDF CDFPROT01009 B
CDF CDFPROT01010 A
CDF CDFPROT01012 A
CDF CDFPROT01013 B
CDF CDFPROT01014 B
CDF CDFPROT01015 B
CDF CDFPROT01016 A
QQL QQLPROT01001 A
QQL QQLPROT01002 B
QQL QQLPROT01003 A
AMD AMDPROT01001 A
AMD AMDPROT01002 B
AMD AMDPROT01003 A
AMD AMDPROT01004 B
AMD AMDPROT01005 A
AMD AMDPROT01006 A
;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 21 Jan 2021 20:00:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713205#M219984</guid>
      <dc:creator>Merdock</dc:creator>
      <dc:date>2021-01-21T20:00:04Z</dc:date>
    </item>
    <item>
      <title>Re: how to assign site name and sequence number to dummy id in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713304#M220036</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 (drop = n l);
   set have;
   by site notsorted;
   if first.site then n = 0;

   l = substr(patid, length(patid) - 2);
   if not find(l, 'x', 'i') then n = input(l, 3.);
   else n = sum(n, 1);

   substr(patid, 10, 3) = put(n, z3.);

   retain n;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;site patid        group 
ABC  ABCPROT01001 A 
ABC  ABCPROT01002 B 
ABC  ABCPROT01003 A 
ABC  ABCPROT01005 A 
ABC  ABCPROT01006 A 
ABC  ABCPROT01007 B 
ABC  ABCPROT01008 A 
ABC  ABCPROT01009 B 
CDF  CDFPROT01004 A 
CDF  CDFPROT01005 A 
CDF  CDFPROT01006 A 
CDF  CDFPROT01007 B 
CDF  CDFPROT01008 A 
CDF  CDFPROT01009 B 
CDF  CDFPROT01010 A 
CDF  CDFPROT01012 A 
CDF  CDFPROT01013 B 
CDF  CDFPROT01014 B 
CDF  CDFPROT01015 B 
CDF  CDFPROT01016 A 
QQL  QQLPROT01001 A 
QQL  QQLPROT01002 B 
QQL  QQLPROT01003 A 
AMD  AMDPROT01001 A 
AMD  AMDPROT01002 B 
AMD  AMDPROT01003 A 
AMD  AMDPROT01004 B 
AMD  AMDPROT01005 A 
AMD  AMDPROT01006 A &lt;/PRE&gt;
&lt;/LI-SPOILER&gt;</description>
      <pubDate>Fri, 22 Jan 2021 08:04:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713304#M220036</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2021-01-22T08:04:37Z</dc:date>
    </item>
    <item>
      <title>Re: how to assign site name and sequence number to dummy id in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713901#M220317</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/31304"&gt;@PeterClemmensen&lt;/a&gt;, thank you so much, this did the trick!&lt;/P&gt;</description>
      <pubDate>Mon, 25 Jan 2021 14:24:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-assign-site-name-and-sequence-number-to-dummy-id-in-SAS/m-p/713901#M220317</guid>
      <dc:creator>Merdock</dc:creator>
      <dc:date>2021-01-25T14:24:02Z</dc:date>
    </item>
  </channel>
</rss>

