Exploratory コミュニティ

一つの列に日本語、英語、数字が入っていた時にそれぞれを別の列に分ける方法

#1

下記のスクリーンショットのように、一つの列に日本語や英語、数値のデータが入ってるとします。
また、数値の小数点は大文字になってしまっている状態です。

これらのデータをそれぞれ日本語や英語、数値の列に分けたいです。

08

ステップとしては、

  • 文字列の標準化
  • 数値を取り出す
  • 英語を取りだす
  • 数値列と英語列を元に、日本語を取り出す

となります。

まずはじめに、数値のデータの中にある小数点が大文字になっているため、この列を標準化します。

列ヘッダメニューを開き、「テキストを操作」から「文字列を標準化」を選びます。

11

ダイアログが表示されるので、そのまま実行します。

38

小数点が大文字になっていましたが、半角にすることができました。

31

次に、数値データを新しい列に取り出していきます。

列ヘッダメニューを開き、「データタイプを変換」から「Numeric(数値)タイプ」に変換を選びます。

31

ダイアログが表示されるので、新しく列を作成にチェックをして、列名を入力して実行します。

17

数値だけを取り出すことができました。

51

次に、英語を取り出していきます。

列ヘッダメニューを開き、「テキストを操作」から「ある文字列を取り出す」を選びます。

23

新しく列を作成にチェックをし、列名を入力します。

次に、計算エディタに下記のコードを入力します。

str_extract(Original_column, "[A-Za-z]+")

変える部分としては"[A-Za-z]+"を入力するだけです。

この"[A-Za-z]+"はaからzまでのアルファベットという意味です。

42

英語の文字列を取り出すことができました。

04

最後に、日本語の文字列のみにしていきます。

列ヘッダメニューを開き、「テキストを操作」から「ある文字列を取り除く」を選びます。

49

同様に新しい列にチェックをして列名を入力します。

次に、取り除きたい文字列として
str_c(english_column, numeric_column)を指定します。
これは先ほど作成した列を指定することで、元の列から英語と数値を取り除くといった処理になります。

07

長くなりましたが、一つの列に日本語や英語、数値のデータが入っていたものをそれぞれの列に分けることができました。

54