我需要一些幫助。我有一個數據文件(試點主題),有三個試驗,每個試驗有大約1500個數據點。每個試驗都需要截斷到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
輸出應該結束這樣看,每個審判是一個行與指定的樣本數量:
' 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++
}
}
}
我看到4列,不知道有效的數據點是什麼? – Endoro
3美元和4美元是左眼的垂直和水平瞳孔直徑。它們被平均來創建一個數據點。以上數據僅爲樣本。 –
實質上,它將產生一個文件,其中包含消息代碼和連續每行的平均瞳孔直徑。行的長度不相等,因此我需要截斷它們,因此所有三個試驗的平均直徑均爲1500。 –