我有一個來自長時間會話的大型資料集,其中每個主題都執行了許多任務。許多任務涉及相同的 4-5 種類型以及這些類型的多種評分和行為結果。然而,每個結果變數的命名在名稱中反映「類型」的方式上略有不同。我試圖將每個結果的“類型”堆疊起來,並合併在一個電子表格中。到目前為止,我已經能夠堆疊單個變量,然後我能夠透過合併和匹配主題 ID 和重新編碼的「類型」列來連接兩張堆疊有不同變數的工作表。這是正確的順序嗎?堆疊變量,保存結果表,堆疊另一個電子表格中的另一個,保存結果表,連接/合併表,然後堆疊和合併更多?可以同時合併/配對5個表格嗎?我嘗試為兩個合併表的結果添加一個新的堆疊變量,但結果似乎不正確。謝謝!
我不清楚該功能是否有效。現在我的數據類似:
任務1臂;任務1腿;任務2臂;任務2腿;任務3臂;任務3腿;任務3 臉
除了變數名稱與上面的格式不同且並非全部一致之外。我想堆疊任務 1 值,並分別堆疊任務 2 值和任務 3 值,但全部由 Body Site 變數連接:
手臂任務 1 值 任務 2 值。 (無數據)
腿部任務 1 值 任務 2 值。 (無數據)
臉部 任務 1 值 任務 2 值 任務 3 值
可以編寫一個腳本來測試列名稱的不同變體,然後將名稱變更為標準形式。
一旦採用標準形式,當您描述名稱時,以下腳本將採用標準形式

並將其轉換為表格的新形式

names default to here(1);
dt = new table("Example",
add rows(20),
New column("Task 1 arm", set each value(random integer(1,100))),
New column("Task 1 leg", set each value(random integer(1,100))),
New column("Task 2 arm", set each value(random integer(1,100))),
New column("Task 2 leg", set each value(random integer(1,100))),
New column("Task 3 arm", set each value(random integer(1,100))),
New column("Task 3 leg", set each value(random integer(1,100))),
New column("Task 3 face", set each value(random integer(1,100)))
);
dt << new column("Row", set each value(Row()));
dtStack = dt << Stack(
columns(
:Task 1 arm, :Task 1 leg, :Task 2 arm, :Task 2 leg, :Task 3 arm, :Task 3 leg,
:Task 3 face
),
Output Table( "Stack" )
);
dtStack << new column("Body Part", character, formula( word(-1, :label, " ")));
dtStack << new column( "Task", character, formula( substr(:Label, 1 ,length(:label)-length(:body part)-1)));
dtFinal = dtStack << Split(
Split By( :Task ),
Split( :Data ),
Group( :Body Part, :row ),
Output Table( "Final" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
dtFinal << Sort( By(:row, :Body Part), Replace Table(1));
dtFinal << delete columns(:row);
dt << delete columns(:row);
close( dtStack, nosave );