3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SPSS Modelerで横持ちデータを縦持ちデータにしたい

Last updated at Posted at 2020-11-13

SPSS Modelerで、横持ちデータを縦持ちデータに変換することは行列入替ノードを使って行うことができます。

■サンプル
サンプル・ストリームは以下に置きました。
https://github.com/hkwd/spsssample/raw/master/201113%E8%A1%8C%E5%88%97%E5%85%A5%E6%9B%BF%E3%83%8E%E3%83%BC%E3%83%89/201113%E8%A1%8C%E5%88%97%E5%85%A5%E6%9B%BF%E3%83%8E%E3%83%BC%E3%83%89.str

行列入替ノード

以下のような変換を行います。
カードIDで1レコードのデータを、行列入替ノードを使って、購入価格、年収、年齢の各列が3レコードになるデータに変換します。
image.png

  • 行列入替方法を「フィールドからレコードへ」に設定します。
  • 索引にデータを一意に識別できる列を設定します。また、縦変換したくない列も合わせて設定します。
  • 値にレコード化したい列を指定します。

image.png

結果をユニークIDでソートした結果が以下です。
カードID10150のデータが3レコードに展開されています。
列名は汎用的なvariableとvalueという列名で自動的に作成されます。

image.png

なお、valueのデータ型はそろえられてしまうので、文字列型と数値型は混在ができません。「選択したすべての値フィールドのストレージ タイプは同じでなければなりません (数値または文字列)」というエラーになります。
もし混在させたい場合はあらかじめ数値型を文字列型に変換して、文字として扱ってください。

なお、この縦持ち変換はSQLプッシュバックが効かないことには注意が必要です。

参考

■テスト環境
Modeler 18.2.2
Windows 10 64bit

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?