从组合框中选择某些内容后如何继续? //fruit is a row in my table
nw = New window ("Select fruit",
cb = combo box ("apple", "Mango", "Banana")
cb << Set Selected,
<< Set Width (20),
//Here I select apple
Button Box ("OK",
table1 << SelectWhere(:fruit!=apple) << Delete Rows;
) )如何仅选择与“apple”对应的数据来进行分析
这是我想要从这段代码中得到的:
1、我首先制作一个组合框
2. 从组合框中选择苹果
3.单击“确定”后,我应该删除其他行,只留下带有苹果的行。
基础数据分析和建模视窗回复:从组合框中选择某些内容后如何继续?你可以做这样的事情。
table1 = New Table( "Kind of Fruity",
Add Rows( 6 ),
New Column( "fruit", Character, "Nominal", Set Values( {"Apple", "Banana", "Mango", "Apple", "Apple", "Banana"} ) ),
New Column( "Condiment",
Character,
"Nominal",
Set Values( {"Peanut Butter", "Ketchup", "Cayenne Pepper", "Chocolate Fudge", "Caramel", "Salt"} )
)
);
nw = New Window( "Select fruit",
cb = Combo Box( {"Apple", "Mango", "Banana"} ),
Button Box( "OK",
table1 << Delete Rows( table1 << Get Rows Where( :fruit != (cb << Get Selected) ) );
nw << Close Window;
)
);回复:从组合框中选择某些内容后如何继续?您需要对脚本进行轻微修改:
- 您需要使用列表将值输入到组合框
- 您应该使用 << get selected 获取用户选择的值(通常在“确定”按钮内)
- 您应该根据 SelectWhere 语句中的用户选择动态执行检查
@mmarchandTSI答案已经有了这些问题的答案,所以我提供了一个有点不同的解决方案,您可以根据组合框的水果列获取值,演示如何设置特定水果并使用 << get rows where 而不是 select where
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("fruit",
Character,
"Nominal",
Set Values({"apple", "Mango", "Banana", "apple", "Banana", "Kiwi"})
)
);
Summarize(dt, fruits = By(:fruit));
nw = New Window("Select fruit",
cb_fruits = Combo Box(fruits),
Button Box("OK",
sel_fruit = cb_fruits << get selected;
nok_fruit_rows = dt << Get Rows Where(:fruit != sel_fruit);
dt << Delete Rows(nok_fruit_rows); // note that fruits variable isn't updated
nw << Close Window;
),
cb_fruits << Set(Contains(fruits, "Kiwi"));
);