你好,
我有一个校准数据并输出信息的系统:
| 轮胎标识 | 踏 | 深度 | 拖 | 我们 | 磅/平方英寸 |
| 2326 | 内 | 0.618584 | 0.117774 | 0.417314 | 21.15549 |
| 2326 | 外 | 0.740841 | 0.417079 | 0.417314 | 21.15549 |
| 2327 | 内 | 0.329065 | 0.218903 | 0.365071 | 25.65573 |
| 2327 | 外 | 0.478055 | 0.214953 | 0.365071 | 25.65573 |
轮胎 ID 被读取两次,一次用于内侧胎面读数,一次用于外侧。 有没有我可以用来重组它的脚本:
| 轮胎标识 | 内部深度 | 外深 | 内拖 | 外拖 | 我们 | 磅/平方英寸 |
| 2326 | 0.61858445 | 0.74084057 | 0.1177737 | 0.4170794 | 0.41731 | 21.1555 |
| 2327 | 0.32906451 | 0.47805545 | 0.2189025 | 0.2149527 | 0.36507 | 25.6557 |
在这里,每个轮胎只有一个条目。 Depth 和 Drag 的条目已由 Inner 或 Outer 重命名,并且相同的列刚刚合并为一个。 这是一个更大的工作表的片段,其中包含更多的列 - 有些不同,有些相同。
理想情况下,脚本可以根据疲劳 ID 确定哪些单元格是相同的,然后删除重复项。 但是使用预先确定的名称设置的脚本也可以工作,因为列名永远不会改变。
谢谢!
@jthi , @txnelson ,你们两个上次帮了大忙! 谢谢你! 我真的不知道要采取什么方法,也无法在以前的解决方案中找到足够相似的东西。
使用拆分平台可以获得您所要求的内容
表=>拆分
打开拆分平台后,设置屏幕如下图所示

单击确定后,它将创建一个新的数据表

执行拆分的脚本包含在数据表的 Source 条目中
只需右键单击“来源”一词

并选择编辑
编辑窗口将打开并显示运行拆分和创建所需数据表所需的 JSL。

只需将编辑窗口中的 JSL 剪切并粘贴到您的脚本中
这是一种蛮力的方法,但它有效。注意拆分列和非拆分列的变量。
dt = New Table( "Base Tire Data", Add Rows( 4 ),
New Column( "Tire ID", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [2326, 2326, 2327, 2327] ) ),
New Column( "Tread", Character( 16 ), "Nominal",
Set Values( {"Inner", "Outer", "Inner", "Outer"} ) ),
New Column( "Depth", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.618584, 0.740841, 0.329065, 0.478055] ) ),
New Column( "Drag", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.117774, 0.417079, 0.218903, 0.214953] ) ),
New Column( "uS", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.417314, 0.417314, 0.365071, 0.365071] ) ),
New Column( "psi", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [21.15549, 21.15549, 25.65573, 25.65573] ) )
);
nr = nrows(dt);
dtt = New Table( "Split Tires");
dtt << new column("Tire ID", Numeric, "Continuous", Format( "Best", 12 ));
split_cols = {"Depth", "Drag"};
nonsplit_cols = {"uS", "psi"};
for (i = 1, i <= nitems(split_cols), i++,
inn_col = "Inner " || split_cols[i];
out_col = "Outer " || split_cols[i];
dtt << new column(inn_col, Numeric, "Continuous", Format( "Best", 12 ));
dtt << new column(out_col, Numeric, "Continuous", Format( "Best", 12 ));
);
for (i = 1, i <= nitems(nonsplit_cols), i++,
one_col = nonsplit_cols[i];
dtt << new column(one_col, Numeric, "Continuous", Format( "Best", 12 ));
);
dtt << Add Rows( nr/2 );
k = 0;
for (i = 1, i <= nr, i+=2,
k++;
for (m = 1, m <= nitems(split_cols), m++,
one_col = split_cols[m];
inn_col = "Inner " || split_cols[m];
out_col = "Outer " || split_cols[m];
column(dtt, inn_col)[k] = column(dt, one_col)[i];
column(dtt, out_col)[k] = column(dt, one_col)[i+1];
);
column(dtt, "Tire ID")[k] = column(dt, "Tire ID")[i];
for (m = 1, m <= nitems(nonsplit_cols), m++,
one_col = nonsplit_cols[m];
column(dtt, one_col)[k] = column(dt, one_col)[i];
);
);