2016-12-02 11 views
1

名前にDataSetという名前のマクロ参照が含まれているテーブルがあります。マクロ参照を含む文字列変数を評価する

(YYMMが最新の月である)Monthly_Data_ & YYMM

私はこの文字列でTableを維持したいが、その後に評価DataSet名前で新しい変数を持っています。

Monthly_Data_ & YYMM、Monthly_Data_1612

私はこれを行う方法がありません。データセットをマクロ変数として読み込むと、必要な名前として返されますが、評価されていない参照と同じ行にこれを結合することはできません。

私はこれが可能でなければならず、おそらくかなり簡単だと確信していますが、私はこれをどうやって行うのかについて頭を悩ますことはできません。例えば

あなたがこれを行うにはresolve機能を使用することができ感謝

+0

ここで行ったことを示してください。あなたはそれが働いているので、なぜ私たちには表示されません – AxelH

+0

それはここで働いていない、それは私がそれが働く方法の例です。以下の答えは、私が何をしているのかを示しています。 – Satkin2

+0

**データセットをマクロ変数として読み込むと、必要な名前として返されますが、評価されていない参照と同じ行に結合することはできません。**正しい結果が得られたものの、正しく格納されていないことを意味します。テーブル...あなたは私ではなく、その行を書く人です。 – AxelH

答えて

1

を、

%let YYMM = 1601; 

data mydata; 
    dsname = 'Monthly_Data_&YYMM'; 
    dsname_resolved = resolve(dsname); 
run; 

N.B. resolve関数が実行される時点で、ユーザーの列に使用されるすべてのマクロ変数をセッションで正しい値で定義する必要があります。 2つの異なるデータセットが名前に同じマクロ変数を使用していて、異なる時間に異なる値を使用した場合は、マクロ変数を再定義して別々のデータステップまたはcall symput + symgetを介してロジックを個別に実行する必要があります。

+0

完璧な、ちょうど私が後だった。どうもありがとう – Satkin2

関連する問題