帮助提取动态转换的变量名称大家好,
我需要一个看似简单的问题的帮助,但我无法找到解决方案。我编写了一个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列表中提取来获取此信息