<?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: masking varables in all datasets in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447453#M112409</link>
    <description>not working for numeric and dates.&lt;BR /&gt;Thanks,&lt;BR /&gt;S</description>
    <pubDate>Wed, 21 Mar 2018 15:43:28 GMT</pubDate>
    <dc:creator>sathya66</dc:creator>
    <dc:date>2018-03-21T15:43:28Z</dc:date>
    <item>
      <title>masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447421#M112392</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;I want to mask the variables values&amp;nbsp;with 'XXXX' in all datasets&amp;nbsp; so I created a macro with masking variables. 'names' data set has all variables (name,&lt;FONT face="Courier New" size="2"&gt;title,name_s house_name house_number) but 'test'data set has only two variables .when I use this test macro for test table&amp;nbsp;it is creating dummy varables and also remaining datasets&amp;nbsp; doesn't have all the variables. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;I used&amp;nbsp; below code&amp;nbsp; to check the varable existence&amp;nbsp; but I am stuck here .if variables exits then mask else don't mask .(I need this kind of approach).&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro VarExist(ds, var);

%local rc dsid result;

%let dsid = %sysfunc(open(&amp;amp;ds));

 

%if %sysfunc(varnum(&amp;amp;dsid, &amp;amp;var)) &amp;gt; 0 %then %do;

%let result = 1;

%put NOTE: Var &amp;amp;var exists in &amp;amp;ds;

%end;

%else %do;

%let result = 0;

%put NOTE: Var &amp;amp;var not exists in &amp;amp;ds;

%end;

 

 

%let rc = %sysfunc(close(&amp;amp;dsid));

 

&amp;amp;result

%mend VarExist;

 

%put %VarExist(names, name);

 

%macro test;

name=tranwrd(name, trim(name), "xxxxx");

title=tranwrd(title, trim(title), "xxxxx");

name_s=tranwrd(name_s, trim(name_s), "xxxxx");

house_name=tranwrd(house_name, trim(house_name), "xxxxx");

house_number=tranwrd(house_number, trim(house_number), "xxxxx");

 %mend;

data a;

set names;

%test;

/*ss=cat(title,name);*/

run;

data b;

set test;

%test;

 

run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;sorry my question is not that clear.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;Tahnks,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;S.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Mar 2018 14:23:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447421#M112392</guid>
      <dc:creator>sathya66</dc:creator>
      <dc:date>2018-03-21T14:23:55Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447427#M112395</link>
      <description>&lt;P&gt;Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro test(dsname,varname);
%if %varexist(&amp;amp;dsname,&amp;amp;varname) %then %do;
&amp;amp;varname = tranwrd(&amp;amp;varname, trim(&amp;amp;varname), "xxxxx");
%end;
%mend;

%macro testall(dsname);
%test(dsname,name);
%test(dsname,title);
%test(dsname,name_s);
%test(dsname,house_name);
%test(dsname,house_number);
%mend;

data a;
set names;
%testall(names);
/*ss=cat(title,name);*/
run;

data b;
set test;
%testall(test);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Mar 2018 14:40:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447427#M112395</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-03-21T14:40:05Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447432#M112397</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/11562"&gt;@Kurt_Bremser&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro test(dsname,varname);
%if %varexist(&amp;amp;dsname,&amp;amp;varname) %then %do;
&amp;amp;varname = tranwrd(&amp;amp;varname, trim(&amp;amp;varname), "xxxxx");
%end;
%mend;

%macro testall(dsname);
%test(dsname,name);
%test(dsname,title);
%test(dsname,name_s);
%test(dsname,house_name);
%test(dsname,house_number);
%mend;

data a;
set names;
%testall(names);
/*ss=cat(title,name);*/
run;

data b;
set test;
%testall(test);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Why are you using TRANWRD?&amp;nbsp; Just assign &amp;amp;varname='XXXXXX';&lt;/P&gt;</description>
      <pubDate>Wed, 21 Mar 2018 14:52:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447432#M112397</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2018-03-21T14:52:21Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447434#M112399</link>
      <description>Not working&lt;BR /&gt;WARNING: Argument 1 to function VARNUM referenced by the %SYSFUNC or %QSYSFUNC macro function is&lt;BR /&gt;out of range.&lt;BR /&gt;NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The&lt;BR /&gt;result of the operations have been set to a missing value.&lt;BR /&gt;NOTE: Var forename not exists in dsname&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;</description>
      <pubDate>Wed, 21 Mar 2018 15:01:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447434#M112399</guid>
      <dc:creator>sathya66</dc:creator>
      <dc:date>2018-03-21T15:01:16Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447444#M112404</link>
      <description>&lt;P&gt;Got it to work. See the whole code:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro VarExist(ds, var);
%local rc dsid result;
%let dsid = %sysfunc(open(&amp;amp;ds));
%if %sysfunc(varnum(&amp;amp;dsid, &amp;amp;var)) &amp;gt; 0 %then %do;
%let result = 1;
%put NOTE: Var &amp;amp;var exists in &amp;amp;ds;
%end;
%else %do;
%let result = 0;
%put NOTE: Var &amp;amp;var not exists in &amp;amp;ds;
%end;
&amp;amp;result
%mend;

%macro test(dsname,varname);
%if %varexist(&amp;amp;dsname,&amp;amp;varname) %then %do;
&amp;amp;varname = "xxxxx";
%end;
%mend;

%macro testall(dsname);
%test(&amp;amp;dsname,Name);
%test(&amp;amp;dsname,title);
%test(&amp;amp;dsname,name_s);
%test(&amp;amp;dsname,house_name);
%test(&amp;amp;dsname,house_number);
%mend;

data test;
set sashelp.class;
%testall(sashelp.class);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 21 Mar 2018 15:13:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447444#M112404</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-03-21T15:13:03Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447445#M112405</link>
      <description>Yes now working Thyanks.</description>
      <pubDate>Wed, 21 Mar 2018 15:16:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447445#M112405</guid>
      <dc:creator>sathya66</dc:creator>
      <dc:date>2018-03-21T15:16:33Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447453#M112409</link>
      <description>not working for numeric and dates.&lt;BR /&gt;Thanks,&lt;BR /&gt;S</description>
      <pubDate>Wed, 21 Mar 2018 15:43:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447453#M112409</guid>
      <dc:creator>sathya66</dc:creator>
      <dc:date>2018-03-21T15:43:28Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447519#M112443</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/93352"&gt;@sathya66&lt;/a&gt; wrote:&lt;BR /&gt;not working for numeric and dates.&lt;BR /&gt;Thanks,&lt;BR /&gt;S&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Of course not. "xxxxx" is a string. You need to set a rule how to anonymize numerics.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Mar 2018 17:59:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447519#M112443</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-03-21T17:59:28Z</dc:date>
    </item>
    <item>
      <title>Re: masking varables in all datasets</title>
      <link>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447543#M112452</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/93352"&gt;@sathya66&lt;/a&gt; wrote:&lt;BR /&gt;not working for numeric and dates.&lt;BR /&gt;Thanks,&lt;BR /&gt;S&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I think you can do this much more easily with this simple code.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data newhart; 
   if 0 then set sashelp.heart;
   retain _character_ 'XXXXXXXXX' _numeric_ .M;
   set sashelp.heart(drop=AgeCHDdiag Sex AgeAtStart Height Weight Diastolic Systolic MRW Smoking AgeAtDeath Cholesterol Chol_Status BP_Status);
   run;
proc print;
   run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/19369i03A4D6B5B115B80A/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Mar 2018 19:09:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/masking-varables-in-all-datasets/m-p/447543#M112452</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2018-03-21T19:09:14Z</dc:date>
    </item>
  </channel>
</rss>

