私は現在 Google Refine を使用しています。私の目標は、1 つの既存の列を 2 つの部分に分割することです。ビルトインの「add column based on...」機能を使用しています。列には、通りの名前とそれに対応する番地が含まれています。たとえば、次のようになります。
Stackoverflow Street 89
すべての行は同じように構造化されています。つまり、通りの名前は長い場合も短い場合もあり、1 つまたは複数の単語を含むことができますが、常に (家) 番号で終わり、常に空白で区切られます。
私は Google Refine を使用しているので、GREL ステートメント (Google Refine Expression Language) を使用してこれを実行しようとしていました。アイデアは次のようなものです。空白スペースで分割されたすべての値を断片に分割します。各分割値を変数に保存します。次に、特定の値に数値 (番地) が含まれているかどうかを確認します。数値の場合は、その値を取得して出力に転送します。私はすでにこのようなものを手に入れました。
forEach(value.split(" "), v, v).join(";")
ここに質問があります: forEach 関数内に IF 関数を統合するにはどうすればよいですか? その方法を知っていれば、おそらく値を分割するだけでなく、数値かどうかを確認することもできます。数値かどうかを確認するには、isNumeric(value) を使用できます。
すべてのヒントに感謝します。ありがとう、ヨルグ。