나는 이와 같은 테이블을 가지고있다 :
| 명부 | 애플 레드 | 사과 노랑 | 바나나 레드 | 바나나 옐로우 |
| ㅏ | 1 | 11 | 21 | 31 |
| 비 | 2 | 12 | 22 | 32 |
| 씨 | 삼 | 13 | 23 | 33 |
여러 시리즈 (여기서는 사과와 바나나)로 데이터를 쌓고 싶지만 모든 시리즈 (여기서는 빨간색과 노란색)에 대해 1 개의 레이블 만 원합니다. 출력은 다음과 같습니다
| 명부 | 사과 | 바나나 | 그룹 |
| ㅏ | 1 | 21 | 빨간 |
| ㅏ | 11 | 31 | 노랑 |
| 비 | 2 | 22 | 빨간 |
| 비 | 12 | 32 | 노랑 |
| 씨 | 삼 | 23 | 빨간 |
| 씨 | 13 | 33 | 노랑 |
스택 기능을 시도했지만 이것이 특별한 스크립트가 필요하다고 생각합니다. 정말 고맙습니다!
이는 스크립팅없이 세 가지 작업으로 수행 할 수 있습니다.
먼저 사용 테이블-> 스택 네 열을 쌓으려면 애플 레드, 애플 옐로우, 바나나 레드, 바나나 옐로우 )를 단일 열에 넣습니다.
당신은 이것으로 끝날 것입니다 :

이제 사용 열-> 유틸리티-> 텍스트에서 열로 과일을 라벨 열의 색상과 분리하십시오. 구분 기호 필드에 공백을 넣습니다.

두 개의 새로운 열이 생깁니다. 그것들의 이름을 바꾸십시오 과일 과 색깔 . 당신은 삭제할 수 있습니다 상표 기둥.

이제 사용 테이블-> 분할 분할 데이터 에 의해 열 과일.

이제 원하는 데이터 테이블을 얻을 수 있습니다. 사과 열과 바나나 기둥.

데이터를 쌓은 다음 Fruit에 대해 새 열을 만들고 Color에 대해 다른 열을 작성하면 데이터를 필요한 데이터 테이블로 분할 할 수 있습니다.
아래 스크립트는이를 수행하는 방법을 보여줍니다. 그러나 대화식으로 단계를 수행하면 스크립트를 작성하는 방식이므로 대화식 단계를 쉽게 반복 할 수 있습니다.
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
);
