テーブルデータを分析する awk スクリプトを作成しました - p 値と log2 オッズ比を計算しています。
これは私が持っているデータテーブルの例です。
ラベル 値1 値2 ラベル1 9 6 ラベル1 7 6 ラベル1 1 6 ラベル2 5 7 ラベル2 3 7 ラベル2 8 7
すべてのラベル ( Label1/2
) について、観察された回数を数えvalue1 > value2
、この回数を合計回数で割りますLabel
- p 値を取得しています。
これに加えて、log2 比を比較します。
これは私の awk スクリプトです。
awk '{a[$1]=$1}; ($2>=$3) {c++}; {sum+=$2} END
{print c/NR,log($3/(sum/NR))/log(2),a[$1]}'
そして、これは私が得た結果です
0.666667 0.0824622 ラベル 1
Column1 は p 値です。列 2 はオッズ比です。列 3 はラベルです。
問題は、この計算を両方に適用する方法がわからないことLabels
です-最初の計算に対してのみ結果が得られます。
私の質問は-列1のすべての一意のフィールドに対してそのようなawk関数を反復する方法です( Label1/2
)