3
1

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 1 year has passed since last update.

SPSS Modelerで正規表現を使う

Last updated at Posted at 2021-04-19

SPSS Modelerにはreplaceなどの文字列関数はありますが、正規表現に対応していません。

正規表現を使うには以下の方法が考えられます。

  1. Rの拡張ノードを使う
  2. RDBの正規表現関数を使う

以下のようにCOMPANYという列の文字列から「株式会社」という文字列を除去してCOMPANYSHORTという列を追加したいと思います。

image.png

サンプルストリームとデータは以下です。

テスト環境

  • Modeler 18.2.2
  • Db2 Warehouse on Cloud

#1. Rの拡張ノードを使う

R拡張ノードでsubなどのRの正規表現関数を使います。

image.png

正規表現
#正規表現で「株式会社」を除去
COMPANYSHORT<-sub("株式会社","",modelerData$COMPANY)

#列の追加
modelerData<-cbind(modelerData,COMPANYSHORT)

#列定義
newcol<-c(fieldName="COMPANYSHORT",fieldLabel="",fieldStorage="string",fieldMeasure="",fieldFormat="",
fieldRole="")
modelerDataModel<-data.frame(modelerDataModel,newcol)

sub("株式会社","",modelerData$COMPANY)
で「株式会社」という文字列があったら除去しています。

参考

#2. RDBの正規表現関数を使う
R拡張ノードだとRDBで利用した場合SQLプッシュバックが効きません。
SQLプッシュバックを効かせたい場合は、RDBのREGEXP_REPLACEなどの正規表現関数を使います。以下のテストではDb2のSYSIBM.REGEXP_REPLACEを使いました。

image.png

正規表現
SYSIBM.REGEXP_REPLACE(COMPANY,'株式会社','')

参考

#3. 参考
Modelerのビルトイン関数でも*のようなワイルドカードは使えます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?