3

これがGoogleRefineで実現できるかどうかはわかりません。でも基本的にはこういうデータがあります。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

最初のテーブルは、すべてのユーザーのテーブルです。2番目の表は、すべての友達を示しています。ただし、"friends"列の2番目のテーブルでは、削除したい最初のテーブルにすべてのIDが存在するわけではありません。では、2番目のテーブルの列の各IDを検索friendsして、テーブル1に存在しないIDを削除するにはどうすればよいですか?

4

1 に答える 1

4

Table12つのテーブルを異なるプロジェクトに配置します(これらをとと呼びますTable2)。

Table2コラムでfriends

  • 「複数値セルの分割」を使用して、各値を別々の行に取得します
  • 訪問者の列を数値に変換します(または逆に、表1のuser_idを文字列に変換します)
  • 式で「この列に基づいて新しい列を追加する」を使用しますcross(cell,'Table1','user_id').length()

これは、一致するものがない場合は0、一致する場合は1、表1に重複がある場合はN>1を返します。

データを元の形式に戻したい場合は、有効性列でフィルタリングするファセットを設定し、すべての不正な値を空白にしてから、「複数値のセルを結合」を使用して、前に行った分割操作を元に戻します。

OpenRefine 2.6のcross()でいくつかのキャッシュのバグを修正したので、クロスが機能しない場合は、Refineサーバーを停止して再起動してみてください。

于 2013-01-31T23:58:37.510 に答える