awkでLNを計算するには、ifステートメント条件を使用して正と負の値を持つデータセットがあります。

awkでLNを計算するには、ifステートメント条件を使用して正と負の値を持つデータセットがあります。

自然対数(LN)を計算する大規模なデータセットがあります。しかし、多くの場合、負の値があり、awkは発生するたびに警告行をエクスポートし、新しいフィールドを印刷しません。追加フィールドを計算して追加する方法は既にわかっています。しかし、awkを使用して正のデータポイントの値を印刷し、負のデータの場合は、NRなどのある種の欠落データ識別子を印刷する方法がわかりません。この場合、データは$ 11で、(LN)出力は$ 12で印刷されます。ありがとう

QUEENS_DEC,5/26/2002,3.06, ,16.61342593,0.830833333,20020526,0,50.5414,0.0391322,50.5805,**3.9236**
QUEENS_DEC,5/27/2002, ,0.8150,19.73148148,0.812083333,20020527,0.0353628,60.0271,0.0382491,60.1007,**4.0960**
QUEENS_DEC,5/28/2002, , ,19.15046296,0.77,20020528,0,58.2595,0.036267,58.2958,**4.0655**
QUEENS_DEC,5/29/2002,1.83, ,21.76388889,0.783333333,20020529,0,66.2101,0.036895,-66.247,**NR**

ベストアンサー1

テストが利用可能ですif

たとえば、

awk -F, '
  BEGIN { OFS="," } 
  { if ($11<=0) { $12="NR" } else { $12=log($11) } ; print }
'

これは、表示された値に応じて、フィールド12を文字列「NR」またはフィールド11のログに設定します。

入力ファイルを使用すると、出力は次のようになります。

QUEENS_DEC,5/26/2002,3.06, ,16.61342593,0.830833333,20020526,0,50.5414,0.0391322,50.5805,3.92357
QUEENS_DEC,5/27/2002, ,0.8150,19.73148148,0.812083333,20020527,0.0353628,60.0271,0.0382491,60.1007,4.09602
QUEENS_DEC,5/28/2002, , ,19.15046296,0.77,20020528,0,58.2595,0.036267,58.2958,4.06553
QUEENS_DEC,5/29/2002,1.83, ,21.76388889,0.783333333,20020529,0,66.2101,0.036895,-66.247,NR

おすすめ記事