<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一个曾在 JMP 10 中工作的脚本,但现在不在 JMP 11 中。 其他人创建了这个脚本,所以我正在学习它。 导致问题的脚本部分粘贴在下面。 更具体地说,我相信它在以蓝色突出显示的部分。 有任何想法吗??
ChronJoin=Function({}, //02
//按时间顺序加入数据
for( f = 2, f <= N Items(ShortList), f++,
尝试(
dt = open(directory || ShortList),
/*抓住*/
打印(“错误 002a:无法识别的文件类型”|| ShortList);
扔();
);
if(!contains(column name(1), "Date"), //如果第一列的列名不是Date
RowRemove("日期", 1, "时间", 2); //删除标题
ColumnRename(ShortList); //重命名列
);
FixRawSecondsName();
列格式(); //为列设置正确的数据类型
if(N Items(MultiVarCheckBox << Get Selected())!=0,
MultiVarColumn(ShortList);
);
if(N Items(HALTlinesCheckBox << Get Selected())!=0, //选中的垂直参考线
if(TestTypeRadioBox << Get()==1, //HALT
HALTstages(ShortList),
/*否则如果*/TestTypeRadioBox << Get()==4,
SAstages(ShortList);
);
);
try( //如果dt无法加入,则将错误打印到日志并停止脚本
dtPrev = dtMain;
dtMain = dtMain << 加入(
与(dt),
合并同名列,
复制公式(0),
抑制公式评估(0),
By Matching Columns(:Date == :Date, :Time == Time), //通过匹配日期和时间加入
丢弃倍数 (1, 1),
Name("包括非匹配项")(1, 1),
输出表名("Digital" || char(f), nosave);
),
/*抓住*/
打印(“错误002b:加入失败”||ShortList);
扔(); //结束当前脚本序列
);
关闭(DT,nosave); //关闭最近打开的数据表
关闭(dtPrev,nosave); //关闭之前的数据表
);
而(包含(列名(1),“匹配标志”),
dtMain << 删除列(“匹配标志”);
);
);
PMroz,我接受了你的建议,发现了不同之处。 它在 JMP 10 中的工作方式如下:
dtMain = dtMain << 加入(
我可以通过以下方式使其在 JMP 11 中工作:
dtMain = 数据表 (dtMain) << Join(
谢谢您的帮助!
在手动连接的表中,单击源旁边的小红色三角形,然后单击编辑。 将该 JSL 代码与您在此处列出的代码进行比较。
日志中唯一的消息是脚本打印到日志中的内容。 它无法将两个文件连接在一起。 我能够手动将文件连接在一起。
/*抓住*/
打印(“错误002b:加入失败”||ShortList);
扔(); //结束当前脚本序列
);
感谢 mpb 抓住了这一点。 我做了更正,但没有解决它。
我根本没有仔细研究过你的代码,但我注意到这一行:
By Matching Columns(:Date == :Date, :Time == Time), //通过匹配日期和时间加入
第二个 Time 引用前没有冒号。