LoginSignup
3
0

1列内にある、区切り文字(改行やカンマなど)を含む文字列を列展開にする(SPSS Modeler データ加工逆引き7-18)

Last updated at Posted at 2023-12-22

1列内にある区切り文字(改行やカンマなど)を含む文字列を列展開にする

image.png

1.想定される利用目的

・履歴やタグのようなリスト構造を持つフィールドの利用

2.サンプルストリームとデータのダウンロード

3.サンプルストリームの説明

image.png

a.入力するデータは以下の通りです。

「改行」が区切り文字で複数のデータが一つのフィールドに記録されています。データ数は行によって異なっていてもかまいません。

image.png

b.[フィールド作成]ノードを編集します。 

まず、「HISTORY」列に何件のデータがあるかを数えて、何列用意すればいいかを調べます。

count_substring(HISTORY,'\n')+1

で区切り文字の数をカウントします。「\n」は改行コードを意味しています。区切り文字の数+1がデータ数になります。

image.png

[プレビュー]を実行します。
image.png

c.[レコード集計]ノードを編集します。

[履歴数]列の「最大」を集計します。
image.png

結果は3件でしたので、3列用意する必要があります。
image.png

d.[フィールド作成]ノードを編集します。

[HISTORY]列を区切り文字(改行コード)で一つずつ取り出していきます。
3列分の[フィールド作成]ノードを作ります。

textsplit(HISTORY,1,'\n')
textsplit(HISTORY,2,'\n')
textsplit(HISTORY,3,'\n')

image.png

[テーブル]を実行します。3列に分割できました。
image.png

注意事項

カンマ区切りの場合は区切り文字を変える必要があります。

textsplit(HISTORY,1,',')

image.png

4.参考情報

区切り文字を含むフィールドの値を縦持ちする(SPSS Modeler データ加工逆引き7-16) #SPSS - Qiita

当記事では横持で展開しましたが、こちらは縦持ち展開する記事です。

アンケートの複数回答可 (MA)列をフラグに分解する(SPSS Modeler データ加工逆引き2-14) #SPSS -

当記事では展開データは不明という想定でしたが、中身がわかっている場合にはこちらの記事のようにフラグ化するようなことも可能です。

SPSS Modeler ノードリファレンス目次

SPSS Modeler 逆引きストリーム集(データ加工)

3
0
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
0