このようなテーブルがあります:
| リスト | アップルレッド | アップルイエロー | バナナレッド | バナナイエロー |
| a | 1 | 11 | 21 | 31 |
| b | 2 | 12 | 22 | 32 |
| c | 3 | 13 | 23 | 33 |
複数のシリーズ(ここではリンゴとバナナ)でデータをスタックしたいのですが、すべてのシリーズ(ここでは赤と黄色)に1つのラベルだけが必要です。出力は次のようになります。
| リスト | 林檎 | バナナ | グループ |
| a | 1 | 21 | 赤 |
| a | 11 | 31 | 黄 |
| b | 2 | 22 | 赤 |
| b | 12 | 32 | 黄 |
| c | 3 | 23 | 赤 |
| c | 13 | 33 | 黄 |
スタック機能を試しましたが、これには特別なスクリプトが必要だと思います。どうもありがとうございます!
これは、スクリプトなしで3つの操作で実行できます。
まず、使用テーブル->スタック 4列を積み重ねる( アップルレッド、アップルイエロー、バナナレッド、バナナイエロー )単一の列に。
これで終わります:

今、使用 Cols-> Utlities-> Text to Columns ラベル列の色から果物を分離します。区切り文字フィールドにスペースを入れます。

最終的に2つの新しい列が作成されます。それらの名前を変更するフルーツそして色 。削除できますラベルカラム。

使用するテーブル->分割分割するデータコラムフルーツ。

これで、必要なデータテーブルを取得できます。林檎列とバナナカラム。

データを積み重ねてから、果物用に新しい列を作成し、色用に別の列を作成した場合、必要なデータテーブルにデータを分割できます。
以下のスクリプトは、これを実現する方法を示しています。 ただし、これらのステップを対話的に実行することは、スクリプトを作成する方法であるため、インタラクティブなステップを簡単に繰り返すことができます。
Names Default To Here( 1 );
// Create the sample data table
dt = New Table( "Example",
Add Rows( 3 ),
New Script(
"Source",
Data Table( "Untitled 67" ) << Split(
Split By( :Column 2 ),
Split( :Column 1 ),
Sort by Column Property
)
),
New Column( "List", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "Apple red", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 2, 3] ) ),
New Column( "Apple yellow", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [11, 12, 13] ) ),
New Column( "Banana red", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [21, 22, 23] ) ),
New Column( "Banana yellow", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [31, 32, 33] ) )
);
// Stack the columns
dtStack = dt << Stack(
columns( :Apple red, :Apple yellow, :Banana yellow, :Banana red ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
// Create 2 New Columns separating the fruit from the color
dtStack << New Column("Fruit", character, formula(word(1,:Label," ")));
dtStack << New Column("Color", character, formula(word(2,:Label," ")));
// Split the data back into the required new columns
dtFinal = dtStack << Split(
Split By( :Fruit ),
Split( :Data ),
Remaining Columns( Drop( :Label ) ),
Sort by Column Property
);
