O colaborador enviou-me o código e disse"é só executar e já dá resultado". Executei durante duas horas e tive quatro erros. Só quando o dividi célula a célula é que descobri onde estava o problema.
Agora, a minha abordagem é: quando recebo código de outra pessoa, primeiro divido em células e depois localizo o problema célula a célula. O local onde executo é MuchSci o caderno interativo de análise de dados do conjunto de ferramentas científicas.
Depois de dividir em células, os erros passam a ser de quatro tipos
Primeira categoria: faltam pacotes no ambiente. A primeira célula faz apenas uma coisa: fazer o import das bibliotecas necessárias uma vez, para ver qual fica a vermelho. Instala-se o que falta; vê-se tudo de uma vez, sem só descobrir a meio da execução.
Segunda categoria: o caminho não funciona. A segunda célula lê os dados e imprime logo o número de linhas e colunas e as primeiras linhas. No código de outra pessoa, o caminho corresponde à localização no computador dela; este passo tenho de o alterar.
Terceira categoria: os nomes das colunas não coincidem. A terceira célula verifica os nomes das colunas: imprime os nomes reais presentes nos dados e compara-os com os nomes usados no código.
Esta categoria é a mais difícil de detetar, porque, se um nome de coluna tiver uma letra errada, algumas bibliotecas não dão erro: limitam-se a produzir um resultado errado em silêncio. O meu hábito atual é: em qualquer resultado calculado, ver primeiro uma linha de valores originais antes de continuar. A vantagem do caderno interativo de análise de dados está aqui—o resultado de cada célula fica no caderno e posso ir voltando célula a célula para ver em que passo começou a estar errado.
Quarta categoria: diferenças de versão. Algumas funções têm parâmetros predefinidos diferentes consoante a versão. Escrevo explicitamente os parâmetros das funções essenciais, em vez de usar os valores predefinidos.
Depois de verificar as quatro categorias, transformo o código no meu
Não uso diretamente o código de outra pessoa; reorganizo-o no caderno interativo de análise de dados em quatro blocos:
- Leitura(o ficheiro original não é alterado)
- Limpeza(cada ação numa célula separada)
- Cálculo(parâmetros escritos na célula)
- Gráficos e exportação(o gráfico e os valores saem juntos)
Depois de reorganizado, este código passa a ser o meu próprio fluxo de análise. Da próxima vez que mudar de conjunto de dados, altero apenas a célula de leitura.
Aplico este método de divisão em células em três situações
- Assumir dados de outra pessoa: primeiro dividir em células e pôr a funcionar; só depois discutir conclusões.
- Reproduzir resultados de um artigo: reorganizar os quatro blocos de acordo com a secção de métodos do artigo; se não coincidirem, procurar as diferenças célula a célula.
- Ter a minha análise verificada por outra pessoa: entregar o caderno completo diretamente, sem que a outra pessoa precise de me ouvir explicar as operações intermédias.
As três funcionalidades associadas
- O fluxo e os resultados do caderno são arquivados na MuchSci base de conhecimento pessoal, podendo ser consultados diretamente ao escrever a secção de métodos.
- Para a bibliografia a citar na secção de métodos, utilizo o MuchSci assistente de pesquisa de artigos para confirmar DOI e informações de citação.
- Para as descrições originais de métodos em língua estrangeira, uso a MuchSci tradução de artigos para leitura comparada.
- Para o documento de explicação final, utilizo o MuchSci agente assistente de escritório para o formatar como ficheiro editável.
De"código dado por outra pessoa"a"o meu próprio fluxo", tudo depende deste método de divisão em células.MuchSci regista o histórico com o seu caderno interativo de análise de dados,MuchSci arquiva com a sua base de conhecimento pessoal,MuchSci verifica com o seu assistente de pesquisa de artigos,MuchSci faz a tradução de artigos e MuchSci finaliza com o seu agente assistente de escritório.
Um erro não é assustador; o que assusta é calcular mal em silêncio. Este é também o meu primeiro princípio ao usar o assistente de pós-graduação com IApara trabalhar com dados: cada passo tem de poder ser revisto.