Inserindo tabelas no LaTex de forma dinâmica

Para aqueles que já trabalharam com geração de números aleatórios, a situação a seguir pode ser rotineira: Você escreve um script e sempre que o executa gera outputs diferentes. Caso esteja usando uma semente para a geração destes número aleatórios talvez o problema não seja tão grave, mas se por algum motivo a aleatoriedade for importante então escrever resultados sobre isso pode ser um problema. 

Imagine a seguinte situação: Você gera um bocado de números aleatórios, calcula uma série de estatísticas e escreve um belo texto sobre todas elas. Mas depois você percebe que podia ter feito algo a mais. Desta forma, lá se inicia o ciclo vicioso sem prazo para término. Caso exista algo a mais a ser feito então isso irá significar uma longa e torturante sessão, executando os mesmos códigos para inserir tabelas, gerar gráficos e etc. Mas aqui estamos nós para mostrar-lhe que existe uma opção de deixar o torturante trabalho mais agradável (e fácil).

A motivação deste post é deixar claro uma filosofia de vida a ser seguida. Perder tempo com coisas banais (como por exemplo ficar atualizando uma tabela de valores aleatórios) é perda de tempo e tem como ser evitada, afinal é muito mais interessante e produtivo perder tempo pensando em análises/conclusões sobre os resultados.  E para fazer isso, vamos utilizar o próprio tex e o R. O R será fundamental, pois ele será responsável por gerar as tabelas no formato tex. Obs.: O arquivo .tex e o .R devem estar na mesma pasta.

Então vamos lá. O primeiro passo é criar um arquivo .tex.

Integrando R e Julia em um mesmo ambiente

Já faz algum tempo que muito se fala sobre a performance da linguagem Julia. Volta e meia são apresentados benchmarks de algoritmos implementados em Julia e, comparados a outras linguagens, apresenta uma performace bem superior, sendo até mesmo comparado as compilações feitas em C. Em contrapartida, pobre R, sempre sendo associado a baixa performance e alto consumo de memória, entretanto é uma das linguagens mais simples de se aprender com grande facilidade de manipulação das estruturas de dados presentes. Será que não seria possível unir as duas linguagens (alta performace de Julia e facilidade de manipulação do R) em um mesmo ambiente?

A resposta é sim. Na verdade a forma que será apresentada é bem razoável de ser pensada. Basta escrever um código .jl e chamá-lo no terminal passando os argumentos necessários para a chamada daquela função. E temos que fazer isso diretamente do R.

Antes de tudo, vamos dar um bom motivo para fazer isso. Queremos uma função que calcule o valor da série de Fibonacci de um número.

Uma primeira experiência com a linguagem Julia

Imaginem a seguinte situação: Existe um grilo no jardim e o mesmo pula de forma aleatória. Basicamente ele escolhe um ângulo e pula. Escolhe outro ângulo e pula mais uma vez. E assim segue, até o momento que ele cansa. Desejamos responder a pergunta sobre qual a localização do grilo após os muitos pulos dados por ele.

Uma das muitas opções de resolver este problema (e acredito que a mais simples) é simular os respectivos pulos do grilo muitas vezes e ver onde foi a posição final. Simples assim.
Inicialmente foi implementada uma solução escrita em R, menos de 20 linhas, e como era de esperar, o desempenho não foi um dos pontos fortes (demorou cerca de 30 minutos). Então veio a assombrosa pergunta que paira a cabeça de 
Um exemplo do grilo dando 5 pulos.
todos: Tem como fazer melhor? E é claro, a resposta é sim !