<?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: Array to scan character columns, concatenate values, replace old values in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/817140#M34466</link>
    <description>Thank you! Big help</description>
    <pubDate>Wed, 08 Jun 2022 16:02:40 GMT</pubDate>
    <dc:creator>mtr91</dc:creator>
    <dc:date>2022-06-08T16:02:40Z</dc:date>
    <item>
      <title>Array to scan character columns, concatenate values, replace old values</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816971#M34408</link>
      <description>&lt;P&gt;I really cannot figure this one out...&lt;/P&gt;&lt;P&gt;I have 15 columns (drug1-drug15) and I need to combine select values from one column with a value from another column (this will be different combinations for every row, and only for select rows, and some rows will need to combine multiple values).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is what I have compared to what I need. For example, for Observation 1 I need to combine 'carboxy-thc' from drug1 and 'thc' from drug2 and enter the new value 'thc/carboxy-thc' to drug1 and leave drug2 blank. I think I need to use an array, but I do not have experience using them.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;HAVE&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;Obs&lt;/TD&gt;&lt;TD&gt;drug1&lt;/TD&gt;&lt;TD&gt;drug2&lt;/TD&gt;&lt;TD&gt;drug3&lt;/TD&gt;&lt;TD&gt;drug4&lt;/TD&gt;&lt;TD&gt;…&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;carboxy-thc&lt;/TD&gt;&lt;TD&gt;thc&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;benzoylecgonine&lt;/TD&gt;&lt;TD&gt;cocaethylene&lt;/TD&gt;&lt;TD&gt;cocaine&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;carboxy-thc&lt;/TD&gt;&lt;TD&gt;diazepam&lt;/TD&gt;&lt;TD&gt;nordiazepam&lt;/TD&gt;&lt;TD&gt;thc&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;amphetamines&lt;/TD&gt;&lt;TD&gt;methamphetamine&lt;/TD&gt;&lt;TD&gt;midazolam&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;5&lt;/TD&gt;&lt;TD&gt;fluoxetine&lt;/TD&gt;&lt;TD&gt;norfluoxetine&lt;/TD&gt;&lt;TD&gt;thc&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;NEED&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;Obs&lt;/TD&gt;&lt;TD&gt;drug1&lt;/TD&gt;&lt;TD&gt;drug2&lt;/TD&gt;&lt;TD&gt;drug3&lt;/TD&gt;&lt;TD&gt;drug4&lt;/TD&gt;&lt;TD&gt;…&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;thc/carboxy-thc&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;cocaine/benzoylecgonine/cocaethlene&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;thc/carboxy-thc&lt;/TD&gt;&lt;TD&gt;diazepam/nordiazepam&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;4&lt;/TD&gt;&lt;TD&gt;methamphetamines/amphetamines&lt;/TD&gt;&lt;TD&gt;midazolam&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;5&lt;/TD&gt;&lt;TD&gt;fluoxetine/norfluoxetine&lt;/TD&gt;&lt;TD&gt;thc&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help is much appreciated! Thank you!&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jun 2022 00:19:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816971#M34408</guid>
      <dc:creator>mtr91</dc:creator>
      <dc:date>2022-06-08T00:19:27Z</dc:date>
    </item>
    <item>
      <title>Re: Array to scan character columns, concatenate values, replace old values</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816972#M34409</link>
      <description>&lt;P&gt;You will need additional information you have not provided to actually be able to code this.&amp;nbsp; In particular how did you know that "thc" and "carboxy-thc" should be combined?&amp;nbsp; Why not combine&amp;nbsp;&lt;SPAN&gt;carboxy-thc with&amp;nbsp;diazepam?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Anyway the first thing you probably need to do is transpose the 15 drug variables into one drug variable with up to 15 observations.&amp;nbsp; Then once you have mapped the drug names to something (drug class? drug generic name?) that will allow you to combine them you can group them and collapse the similar names into one observations.&amp;nbsp; You could then convert that back into the wide format if you need it for a report.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jun 2022 01:38:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816972#M34409</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-06-08T01:38:01Z</dc:date>
    </item>
    <item>
      <title>Re: Array to scan character columns, concatenate values, replace old values</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816973#M34410</link>
      <description>&lt;P&gt;Thanks for the feedback.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The drug pairing are based on parent-metabolite associations. So 'carboxy-thc' is the metabolite of 'thc'. So I want to combine the parent-metabolite drugs into a single drug.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this what you are describing?&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;drug&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;carboxy-thc&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;thc&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;benzoylecgonine&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;cocaethylene&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;cocaine&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;carboxy-thc&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;diazepam&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;nordiazepam&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;thc&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;amphetamines&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;methamphetamine&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;midazolam&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 08 Jun 2022 01:40:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816973#M34410</guid>
      <dc:creator>mtr91</dc:creator>
      <dc:date>2022-06-08T01:40:59Z</dc:date>
    </item>
    <item>
      <title>Re: Array to scan character columns, concatenate values, replace old values</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816987#M34411</link>
      <description>&lt;P&gt;That might be the result of transposing.&lt;/P&gt;
&lt;P&gt;But the drug dictionary information you need would look more like:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data drugs ;
  input group drug :$30. ;
cards;
1 thc
1 carboxy-thc            
2 cocaine
2 benzoylecgonine
2 cocaethlene            
3 diazepam
3 nordiazepam         
4 methamphetamines
4 amphetamines
5 fluoxetine
5 norfluoxetine
;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;So if HAVE contains an ID variable to unique identify the observations and DRUG1 to DRUG15 then you could use PROC TRANSPOSE to first convert the current HAVE dataset from 15 variable to 15 observations.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=have out=tall (drop=_name_ rename=(col1=drug));
  by id;
  var drug1-drug15;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Now combine that with the drug dictionary and re-order.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql ;
create table tall_groups as
  select distinct a.id, b.group, a.drug 
   from tall a
   inner join drugs b
   on a.drug=b.drug
   order by a.id, b.group, a.drug
;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And finally you can collapse the multiple drugs for a group into one observation.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data tall_concat ;
   do until(last.group);
      set tall_group
      by id group;
      length drug_group $100 ;
      drug_group=catx('/',drug_group,drug);
   end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Jun 2022 04:32:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/816987#M34411</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2022-06-08T04:32:56Z</dc:date>
    </item>
    <item>
      <title>Re: Array to scan character columns, concatenate values, replace old values</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/817140#M34466</link>
      <description>Thank you! Big help</description>
      <pubDate>Wed, 08 Jun 2022 16:02:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Array-to-scan-character-columns-concatenate-values-replace-old/m-p/817140#M34466</guid>
      <dc:creator>mtr91</dc:creator>
      <dc:date>2022-06-08T16:02:40Z</dc:date>
    </item>
  </channel>
</rss>

