JSL 脚本中的数据过滤器运行缓慢我正在尝试创建一个 JSL 脚本,该脚本将使用数据过滤器,在“ITEM_NAME”列中选择约 180 个感兴趣的测试并创建一个新表。当我使用数据过滤器并手动运行它时,它没有任何延迟。但是,当我尝试自动执行该过程时,创建新表需要大约 15 分钟。我该如何提高它的运行效率?
Open( "$DOCUMENTS/test.jmp" );
ref10 = Data Table( "ABC" ) << Select Where(
:ITEM_NAME == "test1" |
:ITEM_NAME == "test2" |
:ITEM_NAME =="test3" |
:ITEM_NAME ==
...
"test180"
) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
自动化和脚本回复:JSL 脚本中的数据过滤器运行缓慢尝试一下
Open( "$DOCUMENTS/test.jmp" );
items={"test1" "test2""test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(ITEMS) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
回复:JSL 脚本中的数据过滤器运行缓慢谢谢吉姆。不知什么原因,我遇到了这个错误(可能是语法问题)。
回复:JSL 脚本中的数据过滤器运行缓慢现在运行速度似乎快了不少,大概需要3-4分钟才能完成,但如果手动操作的话,速度肯定没那么快。为了避免出现这个错误,我不得不对代码稍作修改:
Open( "$DOCUMENTS/test.jmp" );
items={"test1", "test2", "test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(items, ITEM_NAME) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
回复:JSL 脚本中的数据过滤器运行缓慢我的错误......当时已经很晚了......
回复:JSL 脚本中的数据过滤器运行缓慢如果没有看到/理解你的数据(不应该这样),就很难理解为什么你的脚本会这么慢。
您可以尝试使用“<< 获取行,其中行和子集”,而不是选择这些行。在此示例中,我尝试使用链接子集和“无标题输出表名称”来复制数据视图。
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
items = {12, 13, 14, 15};
rows_of_interest = dt << get rows where(Contains(items, :age));
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Link to original data table(1), Output Table("Untitled"));
回复:JSL 脚本中的数据过滤器运行缓慢谢谢你,Jarmo。你的解决方案将处理时间缩短到了大约1分35秒。
我使用的 JMP 表有 13 列和 13127825 个原始数据。输出文件包含 1274416 个原始数据。
回复:JSL 脚本中的数据过滤器运行缓慢最有可能的是可以进行优化,但如果该速度足以满足您的应用程序的需求,我就不必担心这些。