★ csvの欠損値をawkで0に ★

461. csvの欠損値をawkで0に たるもと 2003/08/08 (金) 09:57
└462. Re: csvの欠損値をawkで0に 青木繁伸 2003/08/08 (金) 12:45
 └463. Re^2: csvの欠損値をawkで0に たるもと 2003/08/08 (金) 12:57


461. csvの欠損値をawkで0に たるもと  2003/08/08 (金) 09:57
CSVファイルの欠損値を0に変更したいと思っています。
AWKを用いたいと思っています。
データは以下のようなもので,
1,,2,,,3,,,4 (これを)
1,0,2,0,0,3,0,0,4 (これにしたいです)

以下のようなスクリプトを考えたのですが,うまくいきません。
御指導いただけないでしょうか。
#!/bin/awk -f
BEGIN {
    FS=","
    OFS=","
}

{
    for (j=1;j<=NF;j++){
        if (data[j] == "") {
            $j = $j+0
        }
        data[j]=$j
    }
}

END {
    print $0
} 

     [このページのトップへ]


462. Re: csvの欠損値をawkで0に 青木繁伸  2003/08/08 (金) 12:45
動かない理由はいくつもあり相互に関連してもいるので,動くスクリプトを示します。
物事は簡潔に,不要な配列などは使わない,文法を確認。
BEGIN {
    FS = ","
}

{
    for (j = 1; j <= NF; j++) {
        if ($j == "") $j = 0
    }
    print $0
}

     [このページのトップへ]


463. Re^2: csvの欠損値をawkで0に たるもと  2003/08/08 (金) 12:57
青木 さま

思い通りの出力ができました。
不要な配列を使っていました。
おかげさまで,linux上で次のステップにいけます。
(Excelにもどさなくても)
ありがとうございました。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 025 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る