如何加快数据表操作(例如堆叠、拆分等)?我经常需要堆叠包含数百万行数据的大型表格,进行一些操作,然后再拆分表格。
除了在jsl代码中使用“不可见”的数据表之外,还有哪些方法可以加快这个过程?
我熟悉 Begin/End Data Update 命令,但我不太确定它是否与此相关,或者在不可见表的基础上是否有任何改进。
自动化和脚本编写回复:如何加快数据表操作(例如堆叠、拆分等)?不可见(或私有)是一个不错的起点,然后很大程度上取决于你的表格,有时你甚至可以避免拆分/堆叠。
回复:如何加快数据表操作(例如堆叠、拆分等)?我的目标是合并代表同一列的列,也就是说,我想合并代表同一列的列。我附上了一个示例表,其中“年龄”、“体重”和“身高”这三列分别分布在两列中。我的目标是合并每一对列。
最初我会将列堆叠起来,剪出相关部分(年龄/体重/身高),然后再拆分回去,但是对于非常大的数据表来说,这会成为一个问题。
回复:如何加快数据表操作(例如堆叠、拆分等)?
你试过查询生成器吗?
抱歉,我误解了你的问题。我认为查询构建器在这里帮不上忙。
回复:如何加快数据表操作(例如堆叠、拆分等)?Names Default To Here(1);
dt = Open("$DOWNLOADS/example_input.jmp");
valid_cols = 4;
m = dt[0,0];
r = Transform Each({vals}, m,
nonmissing = Where(!IsMissing(vals));
vals[nonmissing];
);
dt[0, 1::valid_cols] = r;
dt << Delete Columns(valid_cols::N Cols(dt));
回复:如何加快数据表操作(例如堆叠、拆分等)?如果数据真实情况真是如此的话
- 选择您的“重复”列
- 用它们加上 id 列创建一个子集(如果没有 id 列,可能需要创建一个)。
- 删除包含缺失值的行
- 将两个表中的列名更改为相同名称(并删除多余的列)。
- 使用更新原始表的 ID 列
- 关闭子集