<?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: value from a data file to a macro variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325280#M72331</link>
    <description>&lt;P&gt;Hi.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just merge/join the two data sets by BRAND.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
proc sql noprint;
create table car as
select a.*, a.PRICE * b.DISCOUNT as DISCOUNT_PRICE
from car as a left join disc as b
on a.BRAND = b.BRAND;
quit;
 &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it helps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Daniel Santos&amp;nbsp;@ &lt;A href="http://www.cgd.pt" target="_blank"&gt;www.cgd.pt&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 17 Jan 2017 14:18:47 GMT</pubDate>
    <dc:creator>DanielSantos</dc:creator>
    <dc:date>2017-01-17T14:18:47Z</dc:date>
    <item>
      <title>value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325276#M72329</link>
      <description>&lt;P&gt;DATA car;&lt;BR /&gt;infile CARDS;&lt;BR /&gt;INPUT BRAND $ MODEL $ PRICE;&lt;BR /&gt;CARDS;&lt;BR /&gt;Audi ABC 20000&lt;BR /&gt;Audi ABB 25000&lt;BR /&gt;BMW CDE 40000&lt;BR /&gt;BMW CEE 46000&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DATA DISC;&lt;BR /&gt;infile CARDS;&lt;BR /&gt;INPUT BRAND $ DISCOUNT;&lt;BR /&gt;CARDS;&lt;BR /&gt;Audi 0.9&lt;BR /&gt;BMW 0.95&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data car;&lt;/P&gt;&lt;P&gt;set car;&lt;/P&gt;&lt;P&gt;if BRAND eq 'Audi' then price * &amp;amp;discount;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if BRAND eq 'BMW' then price * &amp;amp;discount;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;May I know how can pass the value from a data file (Disc dataset) to a macro variable then use it in the above program? Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2017 14:11:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325276#M72329</guid>
      <dc:creator>scb</dc:creator>
      <dc:date>2017-01-17T14:11:59Z</dc:date>
    </item>
    <item>
      <title>Re: value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325279#M72330</link>
      <description>&lt;P&gt;As there are different BRANDS and each have different DISCOUNT&amp;nbsp;&lt;/P&gt;
&lt;P&gt;you better merge or sql join discount dataset with cars dataset by BRAND;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You may also want create a format to get the discount per brand.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2017 14:18:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325279#M72330</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-01-17T14:18:28Z</dc:date>
    </item>
    <item>
      <title>Re: value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325280#M72331</link>
      <description>&lt;P&gt;Hi.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just merge/join the two data sets by BRAND.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
proc sql noprint;
create table car as
select a.*, a.PRICE * b.DISCOUNT as DISCOUNT_PRICE
from car as a left join disc as b
on a.BRAND = b.BRAND;
quit;
 &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope it helps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Daniel Santos&amp;nbsp;@ &lt;A href="http://www.cgd.pt" target="_blank"&gt;www.cgd.pt&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jan 2017 14:18:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325280#M72331</guid>
      <dc:creator>DanielSantos</dc:creator>
      <dc:date>2017-01-17T14:18:47Z</dc:date>
    </item>
    <item>
      <title>Re: value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325281#M72332</link>
      <description>&lt;P&gt;Though &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13832"&gt;@DanielSantos&lt;/a&gt; solution is to be preferred, here is a way to do it with macro-variables :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA DISC;
infile CARDS;
INPUT BRAND $ DISCOUNT;
call symput(cats("discount_",BRAND),DISCOUNT);
CARDS;
Audi 0.9
BMW 0.95
;
run;

 
Data car;
set car;
DISCOUNT=symgetn(cats("discount_",BRAND));
DISCOUNT_PRICE=PRICE*DISCOUNT;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Jan 2017 14:28:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325281#M72332</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-01-17T14:28:39Z</dc:date>
    </item>
    <item>
      <title>Re: value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325282#M72333</link>
      <description>&lt;P&gt;Here's the data step method:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data car;
input brand $ model $ price;
cards;
Audi ABC 20000
Audi ABB 25000
BMW CDE 40000
BMW CEE 46000
;
run;

data disc;
input brand $ discount;
cards;
Audi 0.9
BMW 0.95
;
run;

proc print data=car noobs;
run;

data car;
merge
  car (in=a)
  disc (in=b)
;
by brand;
if a;
if b then price = price * discount;
drop discount;
run;

proc print data=car noobs;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Output:&lt;/P&gt;
&lt;PRE&gt;brand    model    price

Audi      ABC     20000
Audi      ABB     25000
BMW       CDE     40000
BMW       CEE     46000
                       

brand    model    price

Audi      ABC     18000
Audi      ABB     22500
BMW       CDE     38000
BMW       CEE     43700
&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Jan 2017 14:30:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325282#M72333</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-01-17T14:30:32Z</dc:date>
    </item>
    <item>
      <title>Re: value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325285#M72334</link>
      <description>&lt;P&gt;Tested code using format:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA car;
infile CARDS;
INPUT BRAND $ MODEL $ PRICE;
CARDS;
Audi ABC 20000
Audi ABB 25000
BMW CDE 40000
BMW CEE 46000
XXX YY 50500
;
run;
 
DATA DISC;
infile CARDS;
INPUT BRAND $ DISCOUNT;
CARDS;
Audi 0.9
BMW 0.95
;
run;

data cntl;
 length start end $16  label $10;
 set disc end=eof;
     retain fmtname '$disc';
     start = brand; end=start;
     label = put(discount,z4.2);
     output;
     if eof then do;
        label = '1.00';
        hlo = 'O';
        output;
     end;
run;
proc format cntlin=cntl; run;
/*proc format cntlout=cntl1; select $disc; run;*/
data car_new;
 set car;
     price_new = price * input(put(brand,$disc.),best4.2);
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 17 Jan 2017 14:46:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325285#M72334</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-01-17T14:46:47Z</dc:date>
    </item>
    <item>
      <title>Re: value from a data file to a macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325286#M72335</link>
      <description>The benefif of using format is in case you have a new or unknown brand without discount, you will not get an error.</description>
      <pubDate>Tue, 17 Jan 2017 14:52:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/value-from-a-data-file-to-a-macro-variable/m-p/325286#M72335</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2017-01-17T14:52:04Z</dc:date>
    </item>
  </channel>
</rss>

