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.
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.
Eles criam ou alteram os valores dessas variáveis por meio do 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.
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.
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.
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).
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:
- Introdução ao R no RStudio. Projeto R ou pacote R
- Criação de um projeto de pacote R junto com testes de unidade e documentação
- 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.