2015-04-17 3 views
1

Предположим, что у вас есть набор данных, таких как:Как фильтровать столбцы в SAS

FSA1 SSA1 SBW1 
1  2 3 

Есть ли способ на этапе данных для фильтрации столбцов, которые не содержат «SA»? Я не хочу использовать инструкцию drop или keep, поскольку реальный набор данных содержит сотни переменных.

ответ

6

Что-то вроде этого:

proc sql; 
    select name into: dropnames 
    separated by " " 
    from dictionary.columns 
    where libname='SASHELP' and memname='CLASS' 
    having name contains 'He'; 
    quit; 

    data class; 
    set sashelp.class; 
    drop &dropnames; 
    run; 
+0

Это, как вы делаете то, что просят. Шаг данных решает, какие столбцы отбрасываются/сохраняются с входа и выхода во время компиляции. После его компиляции вы не можете изменять эти столбцы во время выполнения. – DomPazz

+0

Когда я помещаю свой libname = 'WORK' и memname = 'mydata', макрокоманды dropnames не могут быть решены. – lord12

+1

Вставка: разделение по '' после dropnames –

Смежные вопросы