Eu tenho um arquivo de dados que contém datas e medidas correspondentes de alguma quantidade. O arquivo completo se estende por 13 anos e tem ~ 4500 pontos de dados - eu dei um exemplo do formato abaixo. Não há necessariamente uma medida em cada dia, ou seja, algumas datas correspondem a um valor em branco na coluna de dados, intitulado "pbl".
Eu quero calcular, para cada ano do meu conjunto de dados, o número de observações (ou seja, uma contagem de valores diferentes de zero) e também a soma. Então eu vou repetir isso, mas para cada mês. Em termos de trapaça, adicionei colunas com as datas completas reduzidas para "ano" e "mês-ano" para facilitar isso.
Estou usando o awk e posso somar corretamente. O problema está contando. Atualmente minha linha de awk conta o número de dias por ano (ou por mês) e não o número de observações. Assim, para o conjunto de dados completo, recebo "365" ou "366", ou seja, o número total de entradas listadas na coluna de datas; o que eu quero é o número dessas datas que têm uma medida correspondente na coluna "pbl".
Meu palpite é que preciso incluir uma cláusula "para termos não-zero" em algum lugar ou contar com $ 4 em vez de $ 2, mas não posso descobrir como fazer isso. Alguma dica apreciada!
"date","year","month-year","pbl"
05/12/04,2004,"12-2004",960.295
06/12/04,2004,"12-2004",
13/12/04,2004,"12-2004",911.774
29/12/04,2004,"12-2004",2804.06
30/12/04,2004,"12-2004",4453.56
01/01/05,2005,"01-2005",1326.38
07/01/05,2005,"01-2005",
08/01/05,2005,"01-2005",604.919
09/01/05,2005,"01-2005",755.006
10/01/05,2005,"01-2005",
11/01/05,2005,"01-2005",978.818
12/01/05,2005,"01-2005",
13/01/05,2005,"01-2005",1644.87
29/04/05,2005,"04-2005",3630.62
30/04/05,2005,"04-2005",3780.11
01/05/05,2005,"05-2005",1262.66
02/05/05,2005,"05-2005",
14/02/06,2006,"02-2006",5667.58
15/02/06,2006,"02-2006",2696.56
23/07/07,2007,"07-2007",1276.06
24/07/07,2007,"07-2007",