JMPと SAS<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私は、マクロ変数を使用して、パス、ファイル名、配列列など、プログラムで繰り返し使用される文字列のプレースホルダーとして機能する、長年のSASユーザーです。
JSLにも同様の機能がありますか?
いくつか例を挙げてください。
日時:JMP対 SASまた。あなたが式の中にコードのブロックを入れることができることに注意してください(それは外部のファイルに置かれることができて、必要ならば「含まれる」ことができました)。その後、'Substitute()'を使用できます。
ここにデフォルトの名前 ( 1 ) ;
codeBlock = 経験値 ( 印刷する ( 「マクロ変数は」 || チャー ( a% ))) ;
評価 ( 代替 ( NameExpr ( codeBlock ) 、経験値 ( a% ) 、 10年 )) ;
評価 ( 代替 ( NameExpr ( codeBlock ) 、経験値 ( a% ) 、 20 )) ;
日時:JMP対 SASこれは、文字列のプレースホルダーの考えをより直接的に解決する簡単な例です。 そのため、SASマクロ変数と直接同等のものはありませんが、"||"を使用してJSL変数を独自に連結して同じことを実現できます。連結演算子( "+"はJMPで文字列を連結するためには使用されません)
path = "c:\ users \ public \ temp \";
dt1 = Open(path || "bc_mcv.jmp");
dt2 =オープン(パス|| "airports_by_state.jmp");
お役に立てれば。
エリック
日時:JMP対 SASありがとう、イアン。それは私を正しい方向に向けました。
私はJMPとSASを補完的に使用しています。
日時:JMP対 SASSAS言語とJSLは、構文、構造、および目的が大きく異なります(SASシステムとJMPの性質が大きく異なるため)。
おそらく最も近いのは、JSLで関数を定義する機能であり、渡される引数はマクロ変数の値に似ています。例は次のとおりです。
NamesDefaultToHere ( 1 ) ;
//テーブルとその中のカラムを指定して、Distributionを作成し、への参照を返します。
//結果のオブジェクト
doDistribution =
関数 ({ inTable 、 inCol } 、 { デフォルトのローカル } 、
thisDistribution = inTable << 分布 ( カラム ( inCol ))
) ;
//テーブルを開く
dt = 開いた ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
//ディストリビューションを作成して閉じる
myDistribution = doDistribution ( dt 、カラム ( dt 、 "高さ" )) ;
待つ ( 3 ) ;
報告書 ( myDistribution ) << ウィンドウを閉じる ;
待つ ( 3 ) ;
// 2つの分布を作成して逆の順序で閉じる
dist1 = doDistribution ( dt 、カラム ( dt 、 "重量" )) ;
待つ ( 3 ) ;
dist2 = doDistribution ( dt 、カラム ( dt 、 "高さ" )) ;
待つ ( 3 ) ;
報告書 ( dist2 ) << ウィンドウを閉じる ;
待つ ( 3 ) ;
報告書 ( dist1 ) << ウィンドウを閉じる ;
スレッドのタイトルを考えれば、私はSASとJMPが反対している意味がないことにも言及することを義務付けていると感じます。実際のところ、JMPとSASは、実際に使用するユースケースで要求される場合には、非常にうまく相互運用できます。