キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

複数の変数を積み重ねる

LauraC
Level I

各被験者に対して多くのタスクが実施された長いセッションからの大規模なデータセットがあります。タスクの多くは、同じ 4 ~ 5 種類と、それらの種類からの複数の評価と行動結果を含んでいました。ただし、各結果変数の名前は、「タイプ」が名前にどのように反映されるかという点で少し異なります。各結果の「タイプ」を積み重ねて、1 つのスプレッドシートに結合しようとしています。これまでのところ、1 つの変数を積み重ねることができ、その後、被験者 ID と再コード化された「タイプ」列をマージして一致させることで、異なる変数が積み重ねられた 2 つのシートを結合することができました。これは正しい順序ですか? 変数を積み重ね、結果のテーブルを保存し、別のスプレッドシートから別の変数を積み重ね、結果のテーブルを保存し、テーブルを結合/マージしてから、さらに積み重ねてマージしますか? 5 つのテーブルを同時にマージ/一致させることはできますか? 2 つのマージされたテーブルの結果に新しい積み重ねられた変数を追加しようとしましたが、結果が正しくないように見えました。ありがとうございます!

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

3件の返信3
statman
Super User

Re: 複数の変数を積み重ねる

複数のシリーズスタックを試しましたか? 多数の列をスタックできます。

undefined

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

LauraC
Level I

Re: 複数の変数を積み重ねる

その機能が動作するかどうかはわかりません。現在、私のデータは次のようになります:

タスク 1 腕; タスク 1 脚; タスク 2 腕; タスク 2 脚; タスク 3 腕; タスク 3 脚; タスク 3 顔
ただし、変数名は上記の形式から外れており、すべて一貫していません。タスク 1 の値をスタックし、タスク 2 の値を個別にスタックし、タスク 3 の値を個別にスタックしますが、すべて Body Site 変数によって結合されます。
アームタスク 1 の値、タスク 2 の値。(データなし)

レグ タスク 1 の値 タスク 2 の値。(データなし)

顔 タスク1の値 タスク2の値 タスク3の値

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

txnelson
Super User

Re: 複数の変数を積み重ねる

列名のさまざまなバリエーションをテストし、名前を標準形式に変更するスクリプトを作成できます。

標準形式になったら、名前を記述すると、次のスクリプトは標準形式になります。

undefined

そしてそれをテーブルの新しい形式に変換します

undefined

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 );

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。