如何通过JSL命名表并稍后在脚本中引用它?嗨,我正在尝试从大数据表中选择一小部分数据,并从中创建一个临时表。总体目标是总结子集数据。下面的脚本正在创建子集数据表“名称”,但是它没有返回对它的引用供我处理新表。在下面的脚本中,总结了测试数据表的数据,而不是名称数据表。
请帮我。
dt=Open("Test.jmp");
Z= NRow();
k=dt<< Get Rows Where(:Para == "THK" );
pt = dt << Subset(
Rows(k),
Output Table Name("Name"),
);
// I want to summarize the data from this subset data table
Close (dt, No Save);
pt = Current Data Table ();
Summarize(
a=by(:Para, Route),
//b= by(:Route),
c= count,
meanHT = mean(SITE_VALUE),
stdevHT = stddev(SITE_VALUE)
);
show (a,c);
回复:对输出表名称的引用我可能会遗漏一些东西,但是从最初的问题来看,所述问题似乎是需要能够为汇总功能引用子集数据表。 在JMP 12中,有一个附加参数可用于summary函数。 您可以将数据表添加为第一个参数。 因此,您需要做的就是将summary语句更改为:
Summarize(pt,
a=by(:Para, Route),
//b= by(:Route),
c= count,
meanHT = mean(SITE_VALUE),
stdevHT = stddev(SITE_VALUE)
);
另一个观察结果是您使用了以下语句:
pt = current data table();
我相信您真正想做的是通过使用以下命令将当前数据表设置为pk:
current data table(pk);
还是我完全被误导了?
回复:对输出表名称的引用如果使用“ Close()”的“保存”选项,则需要告诉JMP将文件放置在何处:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Wait(3);
Close(dt, Save("$DESKTOP/"||(dt << getName)));回复:对输出表名称的引用<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />谢谢。看来解决了我原来的问题。 。
实际上我的原始脚本似乎也无法正常工作,只是不允许我轻松处理datatable对象。与当前情况一样(使用您的脚本),我无法保存子集表。有什么建议么??提前致谢
关闭(dtSub,保存);
引发错误.....
I / O问题。无法在ReadWrite模式下打开。
该系统找不到指定的文件。
将更改保存到JMP数据表中吗?
回复:对输出表名称的引用在这种情况下,也许等效于JSL的“表>摘要”更好?
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
rows2get = dt << getRowsWhere(:sex == "F");
dtSub = dt << Subset(Rows(rows2get), Output Table("Females"));
dtSummary = dtSub << Summary(Mean(:Weight), Group(:age));