幫助提取動態轉換的變量名稱大家好,
我需要一個看似簡單的問題的幫助,但我無法找到解決方案。我編寫了一個JSL代碼來進行一些計算,它首先要做的是打開一個Column Dialog窗口,在這個窗口中可以選擇表列並將它們放入不同的角色(在我的X和Y變量中)。我需要做的是獲取這些表列的名稱,以便稍後我可以使用它們在圖形框中顯示軸名稱(使用Yname和Xname函數)。直接使用表格列時,一切正常。但是,如果我通過在“列對話框”窗口中指定角色之前右鍵單擊變量來進行轉換,則事情會變得更加複雜。 通常,我會使用類似的東西:
yn= as column(eval( cdw["yv"])) << Get Name;
其中cdw在對像中由列對話框窗口返回。但是,在轉換變量的情況下,它將產生
yn = deleted object reference[];
如果我打破這個問題,那麼 EVAL (cdw [ “YV” ]))會產生一個單元素列表,如下所示:
{變換列(“Log10 [ 表格的名稱 ]“,公式(Log10(:姓名) 表格的名稱 “))))}
我怎樣才能從中提取該部分 LOG10 [ 表格的名稱 ] 這樣我就可以在Graph Box中的Yname或Xname語句中使用它?
非常感謝您提供的任何幫助。
此致,伊夫
Re:幫助提取動態轉換的變量名稱你是對的,我認為[1]是因為在該角色中選擇了多個變量。抱歉在回復之前沒有更徹底地測試您的解決方案!
非常感謝,Yves
Re:幫助提取動態轉換的變量名稱我認為你必須做一些不同的事情。運行我發布的代碼後,這是我的日誌。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
cd=Column Dialog(
ex y = ColList( "Y", Min Col( 1 ), Max Col( 2 ), Data Type( "Numeric" ) ),
ex x = ColList( "X",
Max Col( 1 ),
Modeling Type( {"Continuous", "Multiple Response"} )
),
Line Up( 2,
Text Box( "Alpha" ), ex = EditNumber( .05 ),
Text Box( "Beta" ), ey = EditText( "xyz" )
),
HList( cb = Check Box( "check", 1 ) ),
HList( combo = Combo Box( "option1", "option2" ) ),
HList( rb = RadioButtons( "a", "b" ) )
);
show(cd["ex y"], arg(cd["ex y"][1], 1));
/*:
//cd["ex y"] = {Transform Column("Birth Year^3", Formula(:Birth Year ^ 3))};
//Arg(cd["ex y"][1], 1) = "Birth Year^3";Re:幫助提取動態轉換的變量名稱謝謝杰夫,但它似乎也沒有用(我覺得現在有兩位專家提供了建議,並且與我有相同的觀點,我覺得有點不那麼愚蠢!)。arg()將再次返回整個事物:
Transform Column("Age Group^3", Formula(:Age Group ^ 3))我希望能夠只使用
Age Group^3
伊夫
Re:幫助提取動態轉換的變量名稱該 ARG() 功能會讓你到那裡。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
cd=Column Dialog(
ex y = ColList( "Y", Min Col( 1 ), Max Col( 2 ), Data Type( "Numeric" ) ),
ex x = ColList( "X",
Max Col( 1 ),
Modeling Type( {"Continuous", "Multiple Response"} )
),
Line Up( 2,
Text Box( "Alpha" ), ex = EditNumber( .05 ),
Text Box( "Beta" ), ey = EditText( "xyz" )
),
HList( cb = Check Box( "check", 1 ) ),
HList( combo = Combo Box( "option1", "option2" ) ),
HList( rb = RadioButtons( "a", "b" ) )
);
foo=arg(cd["ex y"][1], 1);Re:幫助提取動態轉換的變量名稱感謝Jim的快速回复,但這不會真正起作用,因為它會使用整個事情,即
Transform Column("Age Group^3", Formula(:Age Group ^ 3)) 作為軸名稱。這在圖中相當麻煩。所以我試圖只提取
Age Group^3
部分作為軸名稱。
再次感謝,伊夫
Re:幫助提取動態轉換的變量名稱取自Col Dialog的腳本索引
幫助==>腳本索引.........搜索Col Dialog
這是示例腳本
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
xx = Column Dialog(
ex y = ColList( "Y", Min Col( 1 ), Max Col( 2 ), Data Type( "Numeric" ) ),
ex x = ColList( "X",
Max Col( 1 ),
Modeling Type( {"Continuous", "Multiple Response"} )
),
Line Up( 2,
Text Box( "Alpha" ), ex = EditNumber( .05 ),
Text Box( "Beta" ), ey = EditText( "xyz" )
),
HList( cb = Check Box( "check", 1 ) ),
HList( combo = Combo Box( "option1", "option2" ) ),
HList( rb = RadioButtons( "a", "b" ) )
);
show( xx );
我添加了對Col對話框()本身的引用。如果運行此命令並在Col對話框中創建Transform變量,它將顯示名為“xx”的列表包含您需要的信息。
xx = {ex y = {Transform Column("Age Group^3", Formula(:Age Group ^ 3))}, ex x = {}, Text Box, ex = 0.05, Text Box, ey = "xyz", cb = 1, combo = 1, rb = 1, Button(1)};
您可以通過從xx列表中的ex y列表中提取來獲取此信息