如何将脚本应用于数据表的子集你好,
我的数据表中有 6 个数据子集(通过 X 列区分,每个子集分别用不同的字母“a”、“b”、“c”、“d”、“e”和“f”表示)。如何将脚本分别应用于所有 6 个子集,并将脚本的 6 个结果显示在同一列中?
感谢您的支持!
最好的
克莱尔
------
当前脚本已应用于整个数据表:
dt = Current Data Table();
dt << New Column("sumtempj",
Numeric,
Continuous,
<
<SET each="" value=""></SET>
<LINGO-LABS id="lingo-labs-615309" slang="en-US" mode="UPDATE">
<LINGO-LABEL>质量与工艺工程</LINGO-LABEL>
</LINGO-LABS>
回复:如何在数据表的子集上应用脚本仅根据您在此处拥有的脚本,我将添加索引列,根据唯一字母创建子集,对每个字母运行公式,然后将数据更新回原始表
回复:如何在数据表的子集上应用脚本嗨,亚尔莫,
谢谢你的提示!
我只是 JSL 的初学者,现在有了这个脚本(见下文)。 结果列“sumtempj”出现在生成的每个子数据表中,但该列中没有结果。 你能看出错误吗?
最好的
克莱尔
脚本:
dt = Current Data Table();
// Perform the subsets
listDT = dt << Subset(
By( :BBI and SteriRun ),
All rows,
Selected columns only( 0 ),
columns( :RoundedTempJ, :BBI and SteriRun, :Sterilisation duration )
);
// Loop across all new data tables and run sumtempj
For( i = 1, i <= N Items( listDT ), i++,
listDT[i] << New Column( "sumtempj",
Numeric,
Continuous,
<<SET each="" value=""></SET>
回复:如何在数据表的子集上应用脚本可能还有其他方法可以做到这一点,但由于我不知道你的数据,我真的不能提出任何建议。 这是一个使用可以工作的子集的解决方案
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// add indexing to original data
dt << New Column("IDX", Numeric, Continuous, << Set Each Value(Row()));
// add data column to table as empty
new_col = dt << New Column("sumtempj", Numeric, Continuous);
col_name = new_col << get name;
// get unique groups to uniq_vals
Summarize(dt, uniq_vals_str = by(:age));
// in this case we have to convert uniq_vals back to numeric values BUT it isn't always necessary
// (summarize changes them to strings)
uniq_vals = Transform Each({uniq_val_str}, uniq_vals_str, num(uniq_val_str));
// loop over those unique values
For Each({uniq_val}, uniq_vals,
// create subset
uniq_val_rows = dt << Get Rows Where(:age == uniq_val);
dt_temp = dt << Subset(rows(uniq_val_rows), output table(char(uniq_val)), invisible);
// perform calculation
Column(dt_temp, col_name) << Set Each Value(
Col Max(:height);
);
// update values
dt << Update(
With(dt_temp),
Match Columns(:IDX = :IDX)
);
// wait is here for demo purposes
wait(1);
close(dt_temp, no save);
);
dt << Delete Columns("idx"); 回复:如何在数据表的子集上应用脚本这对我来说有点太高级了,但感谢您的投入! 我设法找到了一种无需太多手动处理即可获得结果的方法,现在它已经足够好了。
最好的
克莱尔