Como depurar código em RStudio e criar um novo projeto em R

Um presente de ano novo para mim neste ano foi uma nova equipe e um projeto na linguagem R, que naquele momento eu já conhecia um pouco. No início foi difícil e não claro, mas com o passar do tempo, a imagem foi ficando mais clara. Conseguimos descobrir algo, algo tinha que ser aceito como é. E agora, depois de dois meses e meio trabalhando no R, decidi compartilhar minha experiência e falar sobre meus primeiros passos neste projeto. Não vou descrever toda a minha angústia mental e emoções que me oprimiram no processo de dominar essa linguagem tão interessante, mas vou me concentrar no lado técnico da questão. O objetivo do meu artigo é falar sobre como depurar código no RStudio e criar um novo projeto em R.



A primeira coisa que tive de enfrentar foi a depuração do aplicativo. No RStudio, é possível selecionar seções individuais do código e executá-las. Isso ajuda muito ao trabalhar com redução de R, uma vez que você não pode definir um ponto de interrupção no modo de depuração. E você pode selecionar linhas e executá-las em qualquer lugar.



executando uma linha de código



Além disso, ele pega as variáveis ​​que serão chamadas nessas linhas do ambiente global. Acontece que para verificar como funciona essa ou aquela função, basta criar variáveis ​​globais, executar o código dessas funções linha por linha e observar o que acontece. Eu trabalho no RStudio, onde você pode ver os valores dessas variáveis ​​na guia Global Environment.



painel de ambiente global



Eles criam ou alteram os valores dessas variáveis ​​por meio do Console.



Console



Mas, além das variáveis, existe outro problema. Quando você executa comandos linha por linha, pode não encontrar o código das funções que são chamadas nas linhas que você executa. Para fazer isso, eles também precisam ser carregados na memória. Para fazer isso, você precisa abrir o arquivo com o código desta função e clicar no botão Fonte.



Botão de fonte



Também existe um modo de depuração clássico no RStudio. Tem a capacidade de definir Break Points, podendo ser executado em modo de depuração e a função browser (), ao encontrar qual R interrompe a execução do código, permitindo a depuração da aplicação. Mas em nosso projeto isso não foi amplamente utilizado devido ao trabalho com a redução de R.



A próxima coisa que encontrei no R são dois tipos de projetos: um projeto normal (Novo Projeto) e um projeto do tipo pacote (Pacote R). Quando entrei para a equipe, havia uma mistura desses 2. Parecia que havia um Pacote, mas ele não seria compilado e o lançamos por meio do RScrtipt. Agora, graças aos esforços de meus colegas, temos um Pacote R funcionando.



imagem



Um projeto normal (Novo Projeto) oferece a gravação de arquivos R-script, onde um arquivo é conectado a outro por meio da função source (). Assim, ao executar o script, ele se parecerá com “um arquivo muito grande”, que inclui todos os arquivos do projeto. Nem sempre é conveniente e nem muito flexível.



Botão de fonte



Ao contrário de um projeto normal, um projeto do tipo R Package nos convida a escrever uma biblioteca de funções em R, que pode então ser instalada em qualquer máquina e chamar essas funções dentro de nosso arquivo de script R. Existe realmente uma advertência. As funções estão disponíveis apenas no script R. Portanto, antes de começar a trabalhar com eles, você precisará criar esse script e gravar chamadas para essas funções nele. Ele é iniciado no console usando o comando: Rscript. Para que isso funcione, você precisa registrar o caminho para o arquivo Rscript.exe nas variáveis ​​de ambiente. Na minha máquina, este caminho é parecido com este: C: \ Arquivos de programas \ R \ R-4.0.3 \ bin... Ao criar suas próprias funções em um projeto do tipo Pacote, no modo de desenvolvimento, você deve usar a função load_all (), que puxa todas as alterações para a memória. Se você não o usar, sempre que alterar o código no projeto, para que essas alterações tenham efeito, é necessário iniciar o processo de instalação, o que R não faz rapidamente.



Agora sobre o projeto R-Package: Ao contrário de um projeto simples, ele contém uma certa estrutura necessária e arquivos especiais. Isto:



  • Arquivo DESCRIPTION com a descrição do pacote,
  • pasta man para descrições de funções,
  • Arquivo NAMESPACE com uma lista de funções disponíveis do pacote criado,
  • uma pasta chamada R, que deve conter seu código R
  • .Rbuildignore ,
  • .Rhistory,
  • .RData Environment,


.Rhistory e .RData estão presentes em um projeto de pacote e em um projeto normal. Você também pode criar uma pasta inst para recursos adicionais e uma pasta de teste para testes de unidade. Para obter mais detalhes sobre como o pacote R funciona e por que funciona dessa forma, você pode seguir o link .



Ao criar um projeto de Pacote R, o utilitário roxygen2 é usado. Ajuda a criar documentação para seu pacote. A ideia é que você descreva cada função diretamente no código, e o próprio utilitário transfere essa descrição para a pasta man, convertendo-a no formato necessário e adicionando informações sobre as funções ao arquivo NAMESPACE. Leia mais sobre o roxygen2 aqui .



Existem também pacotes úteis para montar um projeto, que são usados ​​em quase todas as instruções para criá-lo, pelo menos em todas as que encontrei na Internet:



  • devtools - o pacote principal, que contém a maioria dos comandos para trabalhar com o projeto em sua forma simplificada
  • use este é um pacote auxiliar que simplifica muitas operações de rotina
  • testthat - um pacote para escrever testes de unidade
  • covr - pacote para verificação de código para cobertura de teste de unidade


Todos os pacotes públicos com suas descrições e documentação para a linguagem R são armazenados em CRAN - The Comprehensive R Archive Network (https://cran.r-project.org/)



Para sua conveniência, o RStudio já possui ferramentas integradas para verificar um novo projeto criado (Verificar Pacote) e testá-lo (Pacote de Teste).



Menu construir



Parece que ele disse tudo o que queria, mas é melhor ver uma vez do que ler cem vezes. Abaixo está um vídeo sobre como começar com R:



  1. Introdução ao R no RStudio. Projeto R ou pacote R
  2. Criação de um projeto de pacote R junto com testes de unidade e documentação
  3. Executando e depurando o código R para um projeto de pacote R


Na minha experiência, ao se encontrar em um projeto com uma nova linguagem de programação, na maioria das vezes, o maior problema não é a linguagem em si, mas as ferramentas para trabalhar com ela, as ferramentas de configuração e as configurações do ambiente. Esperançosamente, depois de ler este artigo, será muito mais fácil para muitos começar com R.



All Articles