こんにちは、
私は、データを調整して情報を次のように出力するシステムを持っています。
| タイヤID | トレッド | 深さ | 引っ張る | 我ら | psi |
| 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 は、内側のトレッドの読み取り用に 1 回、外側のトレッド用に 1 回、合計 2 回読み取られます。 そのように再編成するために使用できるスクリプトはありますか:
| タイヤID | 内部の深さ | 外の深さ | インナードラグ | アウタードラグ | 我ら | psi |
| 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 |
ここでは、タイヤごとに 1 つのエントリしかありません。 Depth と Drag のエントリは、Inner または Outer に名前が変更され、同一の列が 1 つにマージされました。 これは、より多くの列を含むはるかに大きなシートの抜粋です。いくつかは異なり、他は同じです。
理想的には、スクリプトは疲れた ID に従ってどのセルが同じであるかを判断し、複製を削除するだけです。 ただし、列名が変更されることはないため、あらかじめ決められた名前で設定されたスクリプトも機能します。
ありがとうございました!
@jthi 、 @txnelsonさん、前回は大変お世話になりました! 有難うございます! どのようなアプローチを取るべきかよくわかりません。以前のソリューションで十分に類似したものを見つけることができませんでした。
ナイスジム!私の力ずくのアプローチよりもはるかに優れています。に従って、グループ列に uS と psi を追加します。 @アロチャ1のリクエスト。


あなたが求めているものは、Split プラットフォームを使用して入手できます
テーブル=>分割
Splitプラットフォームを開いた後、以下に示すように画面をセットアップします

[OK] をクリックすると、新しいデータ テーブルが作成されます。

分割を実行するスクリプトは、データ テーブルのソース エントリに含まれています。
ソースという単語を右クリックするだけです

をクリックし、[編集] を選択します
編集ウィンドウが開き、分割を実行して必要なデータ テーブルを作成するために必要な 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];
);
);