0

非常に大きなデータセット (約 150 MB、500 のターゲット、700,000 以上の属性) があります。各ファイルの末尾に 1 つの属性を追加する必要があります。私が使用している日付ファイルの構造は次のとおりです。

@relation 'filename'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string

@data
3.8,6,0,0,church
86.3,0,63.1,0,man
0,0,0,37,woman

@data に続く各行に、情報の属性を 1 つ追加する必要があります。ただし、属性の数が非常に多いため、テキスト エディターでデータを開いて変更することはできません。含める必要がある属性は、次の構造を持つ別のタブで区切られたファイルにあります。

church  1
man 1
woman   0

望ましい結果は、次のようなデータ セットになります。

@relation 'filename'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string

@data
3.8,6,0,0,church,1
86.3,0,63.1,0,man,1
0,0,0,37,woman,0

コマンドが @data の後の各行の終わりを 2 番目のファイルの各行と一致させるように見える場所で、一致する場合は、対応する 0 または 1 を追加します。

私はこれに対する解決策を探していましたが、私の検索では、ほとんどの場合、テキスト エディターを使用する方向を示している答えが見つかりました。前述したように、テキスト エディターの問題は必ずしもファイルを開くことではありません (たとえば、UltraEdit はこのサイズのファイルの大部分を処理できます)。700,000 を超える属性の後に 1 つの属性を手動で挿入しているため、非常に時間のかかる作業です。

そこで、コミュニティに、コマンド ライン引数 (awk/grep など) を使用して目的の結果を得ることができるかどうかを尋ねます。

4

2 に答える 2