助けが必要です。それぞれ約 1500 のデータ ポイントを持つ 3 つの試行を含むデータ ファイル (パイロット被験者) があります。各試行は、1500 データ ポイントに切り詰める必要があります。私が使用しているコードと、以下のデータ ファイルのサンプルを含めます。どんな助けでも大歓迎です。
`BEGIN{ SKIP=0}
{
if ( $1=="MSG" && SKIP==0 )
{
FS=" "
printf("\n%s",$6)
SKIP=1;
}
else if ( $1=="MSG" && SKIP==1 )
{
FS=" "
printf(" %d",$6)
SKIP=0;
}
else
FS="\t"
printf(" %.2f",($3+$4)/2)
}
}
`MSG 1 # Message: bince.bmp
MSG 1 # Message: 103
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 0 0 0 0 0
SMP 1 10.44 10.44 11.26 11.26 0
SMP 1 10.19 10.19 11.03 11.03 0
SMP 1 10.09 10.09 11.23 11.23 0
SMP 1 10.24 10.24 11.03 11.03 0
SMP 1 10.09 10.09 11.3 11.3 0
SMP 1 10.27 10.27 11.16 11.16 0
SMP 1 10.02 10.02 11.22 11.22 0
SMP 1 10.01 10.01 11.16 11.16 0
SMP 1 10.28 10.28 11.16 11.16 0
SMP 1 10.22 10.22 11.3 11.3 0
SMP 1 10.18 10.18 11.25 11.25 0
SMP 1 10.37 10.37 11.26 11.26 0
SMP 1 10.54 10.54 11.22 11.22 0
SMP 1 10.19 10.19 11.26 11.26 0
SMP 1 10.39 10.39 11.27 11.27 0
出力は次のようになります。各試行は指定された数のサンプルを持つ 1 つの行です。
' 101 0.00 0.00 0.00...10.23 10.23 12.12 12.12
103 0.00 0.00 0.00...10.23 10.23 12.12 12.12
104 0.00 0.00 0.00...10.23 10.23 12.12 12.12'
このようなものを追加すると、各試行内ではなく、1500 サンプルが切り捨てられます。
'BEGIN{ SKIP=0; counter=0}
{
if ( $1=="MSG" && SKIP==0 )
{
FS=" "
printf("\n%s",$5)
SKIP=1;
}
else if ( $1=="MSG" && SKIP==1 )
{
FS=" "
printf(" %d",$6)
SKIP=0;
}
else if ($1!="MSG" && counter <=1500) {
{
FS="\t"
printf(" %.2f",($4+$5)/2)
counter++
}
}
}