脚本表按用户定义的列排序警告 - 脚本新手@工作。 我正在编写一个脚本,其中一部分按用户选择的列(通过 ColList 选择和 Eval List 获得)对数据表进行排序。
这不起作用,它会弹出我不想要的排序对话框:
dt << Sort( By(_userCol), Order(Ascending), Replace Table);
当我将鼠标悬停在 _userCol 上时,指定的列将显示在脚本窗口中。如果我使用确切的列名称,它可以在不弹出“排序”对话框的情况下工作:
dt << Sort( By(:Timestamp), Order(Ascending), Replace Table);
如何使用变量 _userCol 编写此脚本?
谢谢!
回复:脚本表按用户定义的列排序刚刚在另一个线程上得到它。
1.首先添加列表检查
Column( 数据表( "Summary" ),"ITEM") << 设置属性(列表检查,summary_items);
2. 进行表排序。
https://community.jmp.com/t5/Discussions/Custom-Sort-Order/td-p/3119
回复:脚本表按用户定义的列排序嗯……有点。
如果您为要排序的列设置“值排序”列属性,然后按该列排序,则结果排序将根据指定的顺序进行排序。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt:name << set property(
"value ordering",
{"ALICE", "BARBARA", "CHRIS", "ALFRED", "CLAY", "DAVID", "EDWARD", "CAROL", "AMY", "ELIZABETH", "DANNY",
"HENRY", "JACLYN", "JAMES", "JANE", "JEFFREY", "JOE", "JOHN", "KIRK", "LAWRENCE", "JUDY", "FREDERICK",
"LEWIS", "KATIE", "LESLIE", "LINDA", "MARION", "MARK", "LILLIE", "LOUISE", "MARY", "MICHAEL", "PATTY",
"WILLIAM", "SUSAN", "PHILLIP", "MARTHA", "ROBERT", "TIM"}
);
dt << sort( by( :name ), order( ascending ), replace table( 1 ) );回复:脚本表按用户定义的列排序你好先生,
如果我可以按预定义列表而不是升序或降序对表进行排序,是否可以?例如
dt = open("$sample_data\Big Class.jmp");
_userCol = "name";
dt << Sort( By(column(dt, _userCol)), Order(Descending), Replace Table);<BR /><BR />instead of the above, i like to order the table by name in a order given by "list" below?
list={"BARBARA","ALFRED","CHRIS","ALICE","AMY","CAROL","CLAY","DANNY","DAVID","EDWARD","ELIZABETH","FREDERICK","HENRY","JACLYN","JAMES","JANE","JEFFREY","JOE","JOHN","JUDY","KATIE","KIRK","LAWRENCE","LESLIE","LEWIS","LILLIE","LINDA","LOUISE","MARION","MARK","MARTHA","MARY","MICHAEL","PATTY","PHILLIP","ROBERT","SUSAN","TIM","WILLIAM"};回复:脚本表按用户定义的列排序<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />谢谢。 解决了我的问题。 随后了解了在公式中使用列时如何使用 As Column(_usercol)。
回复:脚本表按用户定义的列排序您需要使用柱子函数或评估功能:
dt = open("$sample_data\Big Class.jmp");
_userCol = "age";
dt << Sort( By(column(dt, _userCol)), Order(Ascending), Replace Table);
或者
dt << Sort( By(eval(_userCol)), Order(Ascending), Replace Table);