0

最近、awk を使用したフォーマット変換に関して次の質問をしたところ、Ed Morton から回答がありました。ただし、この awk コードを調整するには支援が必要です。ファイルを作成するとき、実際の整数値 (小数を含む) を保持する代わりに、awk スクリプトは最も近い整数に切り捨てているように見えます。このスクリプトを変更して、データセットに実際の値を保持する方法はありますか?

たとえば、次のようになります。

church place 3.43
church institution 6.92
man place 86.39
man food 63.39
woman book 37.04

になる

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


@data
3,6,0,0,church
86,0,63,0,man
0,0,0,37,woman

それ以外の

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


@data
3.43,6.92,0,0,church
86.39,0,63.39,0,man
0,0,0,37.04,woman

この応答からの awk を変更して、最も近い整数に丸めるのではなく、実際の値を含める方法はありますか?

4

1 に答える 1

1

数値を出力するときは、%d の代わりに %g または %s を使用します。例:

printf "%g,", score[row,attr]

また

printf "%s,", score[row,attr]+0

%s を使用する場合はゼロを追加する必要があることに注意してください。これにより、null 文字列が数値ゼロに変換されます。

于 2013-09-30T12:23:43.200 に答える