<?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 Do I Delete column(variable) conditinally in SAS Data Management</title>
    <link>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268709#M7457</link>
    <description>&lt;P&gt;Below is one approach using sql and data steps:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input P1 $ P2 $ P3 $;&lt;BR /&gt;datalines;&lt;BR /&gt;AP AP AP&lt;BR /&gt;30 25 80&lt;BR /&gt;50 30 120&lt;BR /&gt;NO 50 NO&lt;BR /&gt;NO 20 NO&lt;BR /&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want(keep=vname values);&lt;BR /&gt;set have;&lt;BR /&gt;array p(*) P1-P3;&lt;BR /&gt;do i=1 to dim(p);&lt;BR /&gt;vname=vname(p(i));&lt;BR /&gt;values=p(i);&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sql;&lt;BR /&gt;select distinct vname into :del separated by ' ' from want&lt;BR /&gt;where values='NO';&lt;BR /&gt;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data final;&lt;BR /&gt;set have(drop=&amp;amp;del);&lt;BR /&gt;run;&lt;/P&gt;</description>
    <pubDate>Fri, 06 May 2016 00:40:28 GMT</pubDate>
    <dc:creator>stat_sas</dc:creator>
    <dc:date>2016-05-06T00:40:28Z</dc:date>
    <item>
      <title>How Do I Delete column (variable) conditionally</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268703#M7456</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have datasets, with&amp;nbsp;20 rows and 51 columns. and I need to delete&amp;nbsp;column(variable) if it has contain specific string.&lt;/P&gt;
&lt;P&gt;The string is 'NO'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;dataset (variable name: A, P1, P2, P3, ...... P50)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;P1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;P2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P3&amp;nbsp; .....&amp;nbsp; P50&lt;/P&gt;
&lt;P&gt;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AP&lt;/P&gt;
&lt;P&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&lt;/P&gt;
&lt;P&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&lt;/P&gt;
&lt;P&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NO&lt;/P&gt;
&lt;P&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NO&lt;/P&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;P&gt;20&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want to using array statment or&amp;nbsp;macro but I don't have Idea to succesfully solve this problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I know this is so weired request but I have to do.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How can I do that?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Dec 2017 19:17:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268703#M7456</guid>
      <dc:creator>507A</dc:creator>
      <dc:date>2017-12-14T19:17:05Z</dc:date>
    </item>
    <item>
      <title>Re: How Do I Delete column(variable) conditinally</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268709#M7457</link>
      <description>&lt;P&gt;Below is one approach using sql and data steps:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;BR /&gt;input P1 $ P2 $ P3 $;&lt;BR /&gt;datalines;&lt;BR /&gt;AP AP AP&lt;BR /&gt;30 25 80&lt;BR /&gt;50 30 120&lt;BR /&gt;NO 50 NO&lt;BR /&gt;NO 20 NO&lt;BR /&gt;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want(keep=vname values);&lt;BR /&gt;set have;&lt;BR /&gt;array p(*) P1-P3;&lt;BR /&gt;do i=1 to dim(p);&lt;BR /&gt;vname=vname(p(i));&lt;BR /&gt;values=p(i);&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sql;&lt;BR /&gt;select distinct vname into :del separated by ' ' from want&lt;BR /&gt;where values='NO';&lt;BR /&gt;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data final;&lt;BR /&gt;set have(drop=&amp;amp;del);&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2016 00:40:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268709#M7457</guid>
      <dc:creator>stat_sas</dc:creator>
      <dc:date>2016-05-06T00:40:28Z</dc:date>
    </item>
    <item>
      <title>Re: How Do I Delete column(variable) conditinally</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268712#M7458</link>
      <description>&lt;P&gt;So you do realize then that when you delete the column, the entire column goes. &amp;nbsp;Not just the NO values, but all the values.&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2016 00:48:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268712#M7458</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-05-06T00:48:59Z</dc:date>
    </item>
    <item>
      <title>Re: How Do I Delete column(variable) conditinally</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268715#M7459</link>
      <description>&lt;P&gt;Proc sql&amp;nbsp;maybe not necessary&amp;nbsp;if 1X data step can get the macro variable:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input P1 $ P2 $ P3 $;
datalines;
AP AP AP
30 25 80
50 30 120
NO 50 NO
NO 20 NO
;
 
data _null_;
set have end=done;
array p(*) P1-P3;
array _name(3) $2 _temporary_ ;
do i=1 to dim(p);
if p(i)='NO' then _name(i)=vname(p(i));
end;
if done then call symputx ('del',catx(' ', of _name(*)));
run;


data final;
set have(drop=&amp;amp;del);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 06 May 2016 01:14:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268715#M7459</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2016-05-06T01:14:09Z</dc:date>
    </item>
    <item>
      <title>Re: How Do I Delete column(variable) conditinally</title>
      <link>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268717#M7460</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input P1 $ P2 $ P3 $;
datalines;
AP AP AP
30 25 80
50 30 120
NO 50 NO
NO 20 NO
;
run;
data _null_;
 set sashelp.vcolumn(keep=libname memname name type 
    where=(libname='WORK' and memname='HAVE' and type='char')) end=last;
 if _n_ eq 1 then call execute('proc sql;create table temp as select');
 call execute(catx(' ','sum(',name,'="NO") as',name));
 if last then call execute('from have;quit;');
  else call execute(',');
run;
proc transpose data=temp out=temp1;run;
proc sql;
 select _name_ into : list separated by ' '
  from temp1
   where col1=0;
quit;
data want;
 set have;
 keep &amp;amp;list;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 06 May 2016 01:19:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Data-Management/How-Do-I-Delete-column-variable-conditionally/m-p/268717#M7460</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2016-05-06T01:19:11Z</dc:date>
    </item>
  </channel>
</rss>

