-
Notifications
You must be signed in to change notification settings - Fork 8
/
rdata-rhistory.Rmd
79 lines (65 loc) · 4.34 KB
/
rdata-rhistory.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# .RData e .Rhistory {#rdata-rhistory}
O fluxo ideal de análise de dados começa na escolha da ferramenta. Por ser uma
linguagem especializada em estatística, o R é a primeira escolha de muitas pessoas. Normalmente optar por programar em R também implica na escolha de uma
IDE (*Integrated Development Environment*) que, em 90%^[Não tenho nenhuma
estatística confiável sobre esse número, mas sei que ele não é 100% porque
conheço pelo menos uma pessoa que programa R no neovim e eu passei a usar
emacs.] dos casos, será o RStudio.
O R, em combinação com o RStudio, possui um conjunto de funcionalidades cuja
intenção é ajudar no processo de desenvolvimento. Entretanto, isso acaba
deixando as pessoas que programam em R mal acostumadas.
Como um pai coruja, o RStudio faz questão de lembrar tudo o que você fez
anteriormente. Em sua configuração padrão, a IDE manterá na "memória" todos os
últimos comandos executados, todos os dados utilizados e todos os objetos
criados. Ao fechar e abrir o RStudio, essas informações serão recarregadas
na memória como se você nunca tivesse saído do programa.
Esse recurso é tornado possível pela criação de dois arquivos ocultos: `.RData`
e `.Rhistory`. O primeiro abriga absolutamente todos os objetos criados por uma
sessão R, enquanto o segundo contém uma lista com os últimos comandos
executados. Ao reabrir o RStudio, o conteúdo armazenado nestes arquivos será
carregado no ambiente de trabalho atual como se nada tivesse acontecido.
## Por que desistir
Apesar de ser uma ótima conveniência, assim como o pai coruja, esse tipo de
funcionalidade pode te acostumar mal. Se todos os resultados
parciais de uma análise estiverem disponíveis a qualquer momento, diminui o
incentivo para a escrita de *código reprodutível* e, se todo o histórico de
comandos for acessível, acaba a necessidade de experimentos controlados.
Uma pessoa que dependa ativamente do `.RData` para recuperar seus dados estará
aos poucos contando cada vez mais com a sorte. Caso ela acidentalmente
sobrescreva o objeto relevante e o código para recriá-lo já tenha sido apagado,
não haverá nenhuma forma confiável de recuperar esses dados. Idealmente, todo
o código necessário para uma análise de dados deve estar salvo em um arquivo
`.R` perfeitamente reprodutível; assim, caso você cometa um engano,
é possível executar aquele arquivo do início e obter novamente os objetos que
estavam sendo utilizados.
Arquivos reprodutíveis também tem uma outra vantagem: facilidade de
compartilhamento. A menos que você pretenda sentar com outra pessoa para
explicar como utilizar os objetos do `.RData` e do `.Rhistory`, não pode-se
esperar que ela seja capaz de reproduzir uma análise a partir de
arquivos incompletos. Deste modo, abandonar essa funcionalidade permite utilizar
ferramentas de compartilhamento e controle de versão da maneira como elas foram
idealizadas.
Por fim, é importante notar uma desvantagem sutil, mas muito relevante do uso
do `.RData`. O R trata todos os objetos guardados na memória igualmente, sem
levar em conta sua utilidade ou tamanho. Isso significa que ele também irá
armazenar nos arquivos ocultos todas as bases de dados da sessão (não
importando quão grande sejam). Isso faz com que o `.RData` normalmente seja um
arquivo de múltiplos gigabytes.
Ao reabrir o RStudio, todos esses dados serão recarregados e
provavelmente farão com que você espere vários minutos até que
possa voltar ao seu trabalho. Com o `.RData` é impossível ter controle sobre
quais dados devem ser utilizados em cada sessão de programação.
## Como desativar
O processo de desabilitar o `.RData` e o `.Rhistory` é bastante simples e afeta
todos os projetos do computador, então só é necessário passar por ele uma vez.
Basta selecionar **Tools > Global Options...** na aba de ferramentas do RStudio
e então ajustar três configurações. No final a página de opções gerais deve
ficar similar à da imagem abaixo:
```{r}
knitr::include_graphics("static/rdata-rhistory/config.png")
```
Se acostumar com sessões efêmeras não é uma tarefa fácil e um desconforto
inicial é esperado. Pode ser que você ache entediante executar o mesmo
código toda vez que abrir seu RStudio, mas é importante ter em mente que esse
programa só está lá e pode ser executado inúmeras vezes porque o R não estará
mais fazendo o seu trabalho.