<?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: Add additional variables and assign the values from another rows in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535477#M147051</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	input Acct $ 	Segment $	Score;
	cards;
123 A 2
124 A 9
125 A 14
126 A 10
127 A 12
128 A 3
129 A 7
130 A 5
230 A 8
231 B 15
232 B 7
233 B 22
234 B 15
235 B 71
236 B 45
237 B 62
238 B 29
239 B 30
;
run;

Proc sql;
	create table want as select acct, segment, score, (select max(score) from have a 
		where a.segment=b.segment group by segment) as new_field from have b;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 14 Feb 2019 01:47:31 GMT</pubDate>
    <dc:creator>r_behata</dc:creator>
    <dc:date>2019-02-14T01:47:31Z</dc:date>
    <item>
      <title>Add additional variables and assign the values from another rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535467#M147046</link>
      <description>&lt;P&gt;I have 100 rows of data and I have an account#, a segment,&amp;nbsp;and a score for each row.&amp;nbsp; I want to create another field(column) for each row that is the highest score for that segment. I figured I would sort everything by segment and then descending score first. But not sure what the next step would be&amp;nbsp; maybe a data step if first.segment and first.score then newvariable = score. ??&lt;/P&gt;
&lt;TABLE width="262"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="64"&gt;&lt;STRONG&gt;Acct# &lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;STRONG&gt;Segment&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="64"&gt;&lt;STRONG&gt;Score&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD width="70"&gt;&lt;STRONG&gt;New Field&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;124&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;9&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;125&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;14&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;126&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;10&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;127&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;12&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;128&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;129&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;130&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;14&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;230&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;231&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;232&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;7&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;233&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;22&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;234&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;15&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;235&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;71&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;236&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;45&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;237&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;62&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;238&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;29&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;239&lt;/TD&gt;
&lt;TD&gt;B&lt;/TD&gt;
&lt;TD&gt;30&lt;/TD&gt;
&lt;TD&gt;71&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 00:45:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535467#M147046</guid>
      <dc:creator>pangea17</dc:creator>
      <dc:date>2019-02-14T00:45:45Z</dc:date>
    </item>
    <item>
      <title>Re: Add additional variables and assign the values from another rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535471#M147047</link>
      <description>&lt;P&gt;I don't know if this is the best way to accomplish this task but I was able to do the following.&lt;/P&gt;
&lt;P&gt;proc means data = table1 max nonobs noprint;&lt;/P&gt;
&lt;P&gt;class segment;&lt;/P&gt;
&lt;P&gt;ways 1;&lt;/P&gt;
&lt;P&gt;var CEV;&lt;/P&gt;
&lt;P&gt;output out= table2 (drop= _freq_ _type_) max=TopScore;&lt;/P&gt;
&lt;P&gt;RUN;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sql;&lt;/P&gt;
&lt;P&gt;create table2 AS&lt;/P&gt;
&lt;P&gt;select a.*, b.TopScore&lt;/P&gt;
&lt;P&gt;from table1 a left join table2 b ON a.segment=b.segment&lt;/P&gt;
&lt;P&gt;QUIT;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Feb 2019 01:21:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535471#M147047</guid>
      <dc:creator>pangea17</dc:creator>
      <dc:date>2019-02-14T01:21:39Z</dc:date>
    </item>
    <item>
      <title>Re: Add additional variables and assign the values from another rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535476#M147050</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Acct	Segment $	Score;
datalines;
123	A	2 
124	A	9 
125	A	14
126	A	10
127	A	12
128	A	3 
129	A	7 
130	A	5	
230	A	8	
231	B	15	
232	B	7
233	B	22
234	B	15
235	B	71
236	B	45
237	B	62
238	B	29
239	B	30
;

proc sql;
   create table want as
   select *,
          max(Score) as NewField
   from have
   group by Segment;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 01:45:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535476#M147050</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-02-14T01:45:20Z</dc:date>
    </item>
    <item>
      <title>Re: Add additional variables and assign the values from another rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535477#M147051</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
	input Acct $ 	Segment $	Score;
	cards;
123 A 2
124 A 9
125 A 14
126 A 10
127 A 12
128 A 3
129 A 7
130 A 5
230 A 8
231 B 15
232 B 7
233 B 22
234 B 15
235 B 71
236 B 45
237 B 62
238 B 29
239 B 30
;
run;

Proc sql;
	create table want as select acct, segment, score, (select max(score) from have a 
		where a.segment=b.segment group by segment) as new_field from have b;
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 01:47:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535477#M147051</guid>
      <dc:creator>r_behata</dc:creator>
      <dc:date>2019-02-14T01:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: Add additional variables and assign the values from another rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535480#M147052</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
	by segment score;
run;

data want;
	do until(last.segment);
		set have;
		by segment score;
		new_field=score;
	end;

	do until(last.segment);
		set have;
		by segment score;
		output;
	end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 02:06:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535480#M147052</guid>
      <dc:creator>r_behata</dc:creator>
      <dc:date>2019-02-14T02:06:04Z</dc:date>
    </item>
    <item>
      <title>Re: Add additional variables and assign the values from another rows</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535481#M147053</link>
      <description>&lt;P&gt;Or&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
   do until (last.segment);
      set have;
      by Segment;
      NewField=max(NewField, Score);
   end;

   do until (last.segment);
      set have;
      by Segment;
      output;
   end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 14 Feb 2019 02:06:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Add-additional-variables-and-assign-the-values-from-another-rows/m-p/535481#M147053</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-02-14T02:06:25Z</dc:date>
    </item>
  </channel>
</rss>

