将转换后的变量附加到列表框中大家好,
当我使用“附加”功能时,我无法将转换后的变量添加到列表框中。
这是一个例子:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add", ll2 << append( ll1 << get selected ) ),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
然后例如我右键单击变量“height”>“Transform”>“Log”
当我选择新变量“Log [height]”并单击“Add”按钮时,没有任何事情发生......
你知道我怎么改变它吗?
在此先感谢您的帮助!
Re:将变换后的变量追加到col列表框<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />谢谢你的答案W. Murphrey和msharp。
现在,检查变量是否在表中,如果没有,向用户说他必须添加它,似乎是处理我的问题的好方法。
我要试试这个!
再次感谢。
Re:将变换后的变量追加到col列表框Col List Box()支持拖放功能。 因此,您始终可以将“添加”按钮替换为“请拖放:”文本框。
但是,更大的问题是通过右键单击Col List Box()可以获得转换功能。 主要是b / c我不确定你这样做时你在做什么。 但有一件事是肯定的,你显然没有在数据表中创建一个新的转换列。 数据表不会更改。 似乎用户现在可以创建hocus pocus列,然后将它们拖放到分析字段中。 这会导致应用程序崩溃,除非您通过创建它们来添加处理这些虚构列的功能。
为了在用户点击带有假列的运行按钮时不会崩溃,您必须执行检查以查看所选列是否存在(类似于W. Murphrey的代码)。 如果列不存在,则必须创建它。 由于最终用户可能会右键单击并对转换进行转换,因此您的代码必须足够强大才能处理此问题。 实现此功能后,最终用户将知道他们可以在分析之前右键单击并创建列,他们还将看到其他功能,因此您需要为聚合,分布,行和公式创建更多功能。 不幸的是,由于你无法知道他们想要如何更改所创建的列的公式,你最好意识到这是一个虫洞。
我想说最好忽略这一点,等到SAS能够实现它.Murphrey表示他们会在以后的版本中实现它。 如果您的最终用户在分析之前绝对需要能够对列进行转换,只需授予他们访问数据表的权限即可。
Re:将变换后的变量追加到col列表框你好,
不幸的是,目前ColListBox中没有对转换列的JSL支持。 该建议已提交给JMP开发团队,以便在将来的版本中考虑。
在此期间,您可以添加一个检查以验证该列是否存在。 如果没有,则发出一条消息,指示用户必须将转换后的变量添加到数据表中。 为此,右键单击已转换的列,然后选择“添加到数据表”。
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add",
colList = dt << Get Column Names( String );
If( Contains( colList, (ll1 << Get Selected)[1] ),
ll2 << append( ll1 << get selected ),
Caption( "Transformed variables must be added to the data table" )
);
),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
我希望这有帮助。
温迪