列1の欠落値を見つけて、その値を追加して列2を0に割り当てます。

列1の欠落値を見つけて、その値を追加して列2を0に割り当てます。

次のデータを含むファイルがあります。

21599.94          -13006.00                 
21599.95          -13008.00              
21599.96          -13016.00               
21599.97          -13001.00            
21599.98          -13015.00         
21599.99          -13021.00            
25200.00          -13285.00             
25200.01          -13295.00            
25200.02          -13275.00                
25200.03          -13262.00                 
25200.04          -13278.00            
25200.05          -13277.00

21600.00(列1)からまでのデータが25199.99ありません。列1のすべての値が欠落していることを認識してから(サンプリングレートは0.01です)、その値をファイルに追加し、列2の対応する値を0に割り当てるコードが必要です。

希望の出力:

21600.00         0           
21600.01         0           
21600.02         0            
21600.03         0              
...             
....              
.....               
25199.98         0          
25199.99         0              
25200.00         -13285.00           

ベストアンサー1

私は一般的に明らかな試みがないときにコードの答えを提供しません。しかし、今日は良い日です。ここに私のアドバイスがあります。

awk '
    {
        this = int($1*100 + .5)                 # Counter is integer
    }

    NR == 1 {
        current = this                          # Starting value
    }

    {
        while(current < this) {
            printf "%.2f\t0\n", current/100;    # Output the missing entry
            current++                           # Next increment
        }

        print;                                  # Output current line
        current++                               # Keep in step with expected
    }
' datafile

必要に応じてこの内容を1行に圧縮できますが、この方法は読みやすくなります。

おすすめ記事