2017-09-25 18 views

答えて

2

SASでこれを行うのは、Rなどの場合よりも少し複雑です。シンプルなワンステップソリューションはありません。しかし、マクロ言語に関するいくつかの基本的な知識では、特に複雑ではありません。

まず、パラメータとして変数名と文字列を使用するマクロが必要です。

%macro label_it (var=, label=); 
    label &var. = "&label."; 
%mend label_it; 

次に、マクロ呼び出しのリストを生成する必要があります。あなたは、変数vardescriptionでデータセットvarlabelsを持っていると仮定すると: - データ段階またはPROC DATASETS

proc sql; 
    select cats('%label_it(var=',var,',label=',description,')') 
    into :labellist separated by ' ' 
    from varlabels; 
quit; 

次に、あなたはちょうどあなたが好むどんな文脈でその新しいマクロ変数&labellist.を使用しています。

data want; 
    set have; 
    &labellist.; 
run; 

または

proc datasets lib=work; 
    modify have; 
    &labellist.; 
run; quit; 

はこれを行うには、他の方法はたくさんありますが、これはおそらく最も簡単です。これを多かれ少なかれ1つのステップで行うことは可能ですが、それはずっと複雑で、DOSUBLを使ってより速くなるよりもおそらく遅くなります。

関連する問題