JMP vs. SAS<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我是一個長期的SAS用戶,他使用宏變量作為路徑,文件名,數組列等程序中重複使用的字符串的佔位符。
JSL是否具有類似的功能?
非常感謝幾個例子。
回复:JMP vs. SAS也。請注意,您可以將代碼塊放入表達式中(可以將其放入外部文件中,如果需要,可以將其包含在內)。然後你可以使用'Substitute()':
名稱默認為此處 ( 1 ) ;
代碼塊 = EXPR ( 打印 ( “宏變量是” || 燒焦 ( 一個% ))) ;
EVAL ( 替代 ( NameExpr ( 代碼塊 ) , EXPR ( 一個% ) , 10 )) ;
EVAL ( 替代 ( NameExpr ( 代碼塊 ) , EXPR ( 一個% ) , 20 )) ;
回复:JMP vs. SAS這是一個更簡單的示例,它更直接地解決了字符串佔位符的概念。 所以沒有直接等效的SAS宏變量,但你可以用JSL變量完成同樣的事情,用“||”做你自己的連接連接運算符(“+”不用於在JMP中連接字符串):
path =“c:\ users \ public \ temp \”;
dt1 = Open(path ||“bc_mcv.jmp”);
dt2 = Open(path ||“airports_by_state.jmp”);
希望這可以幫助。
埃里克
回复:JMP vs. SAS謝謝,伊恩。這指向了我正確的方向。
我正在以互補的方式使用JMP和SAS。
回复:JMP vs. SASSAS語言和JSL在語法,結構和意圖上有很大差異(反映了SAS系統和JMP的非常不同的性質)。
可能最接近的並行是能夠在JSL中定義函數,傳遞的參數類似於宏變量的值。一個例子可能是:
NamesDefaultToHere ( 1 ) ;
//在其中給出一個表和一列,進行分配並返回對它的引用
//結果對象
doDistribution =
功能 ({ 於表 , inCol } , { 默認本地 } ,
thisDistribution = 於表 << 分配 ( 柱 ( inCol ))
) ;
//打開一張桌子
DT = 打開 ( “$ SAMPLE_DATA / Big Class.jmp” ) ;
//進行分發並關閉它
myDistribution = doDistribution ( DT ,柱 ( DT , “高度” )) ;
等待 ( 3 ) ;
報告 ( myDistribution ) << 關閉窗口 ;
等待 ( 3 ) ;
//製作兩個發行版並以相反的順序關閉它們
DIST1 = doDistribution ( DT ,柱 ( DT , “重量” )) ;
等待 ( 3 ) ;
DIST2 = doDistribution ( DT ,柱 ( DT , “高度” )) ;
等待 ( 3 ) ;
報告 ( DIST2 ) << 關閉窗口 ;
等待 ( 3 ) ;
報告 ( DIST1 ) << 關閉窗口 ;
鑑於該主題的標題,我覺得有義務也提到SAS和JMP沒有任何意義相反。事實上,當用例要求時,JMP和SAS可以很好地互操作。