-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path2_InterfaceUsuario.Rmd
229 lines (157 loc) · 8.58 KB
/
2_InterfaceUsuario.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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
---
title: "Interface do usuário"
author: "Jônatan Tatsch"
date: '`r Sys.Date()`'
output:
html_document:
toc: yes
fig_caption: yes
fig_height: 7
fig_width: 8
highlight: kate
number_sections: yes
---
```{r, echo=FALSE, out.width = "200px", include = FALSE}
htmltools::img(src = knitr::image_uri("figs/adar.png"),
alt = 'logo',
style = 'position:absolute; top:0; right:0; padding:10px;width:500px; height=300px')
```
```{r setup, include = FALSE}
rm(list = ls())
pcks <- c("knitr", "tint")
easypackages::libraries(pcks)
# configuraçoes knitr
# original
#opts_chunk$set(cache = FALSE, fig.path = "figs/")
# com tint
# configuraçoes knitr
opts_chunk$set(cache = FALSE,
fig.path = "figs/",
comment = "#>",
collapse = TRUE)
# invalidate cache when the tufte version changes
#options(htmltools.dir.version = FALSE)
```
# R no modo interativo
## Convenção
No texto abaixo as expressões a serem avaliadas no R não serão mostradas com o prompt do R (`>`) para tornar mais fácil de copiá-las e colá-las na linha de comando do R. O resultado da avaliação das expressões será mostrado precedido do símbolo (`#>`). Esses valores são os resultados que esperam-se sejam reproduzidos também na sua sessão do R. Por exemplo:
```{r}
1:5
```
## Linha de comando do R
No Linux o R pode ser aberto simplesmente digitando em um terminal a letra `R`.
```{bash, eval = FALSE}
$ R
```
```
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
>
```
A janela com a linha de comando do R apresenta o *prompt* do *R* (` > `). Após este símbolo digitamos os comandos, pressionamos a tecla `<enter>`, o R interpreta o comando e retorna o resultado. Os comandos digitados na linha de comando são chamados de expressões. Esse é o modo iterativo do R. Portanto a linha de comando é a mais importante ferramenta do R, pois todas expressões são avaliadas através dela.
```{r Chunk1}
62 + 38
```
A expressão é avaliada pelo R, o resultado é mostrado, mas o seu valor é perdido.
O número entre colchetes que aparece como resultado da operação ("[1]" no caso acima) indica o conteúdo resultante da operação iniciando na posição 1 desse objeto. O significado dessa informação torna-se mais óbvio quando trabalhamos com objetos maiores, como por exemplo com vetores. Observe os valores nos colchetes para uma sequência de 100 até 1.
```{r Chunk2}
100:1
```
O elemento `[18]` da sequência de 100 até 1 é o número `83`.
Pode ocorrer da expressão digitada na linha ser muito extensa e ir além de uma linha. Se a expressão estiver incompleta o R mostra um sinal de `+`.
```{r Chunk3, message=FALSE}
1 * 2 * 3 * 4 * 5 *
6 * 7 * 8 * 9 * 10
```
Execute a expressão abaixo até o sinal de menos e tecle `<enter>`. Enquanto a expressão não estiver completa o sinal de + se repetirá. Até que você digite o número que deseja subtrair de 4.
```{r Chunk4}
4 -
3
```
## Expressões em sequência
Podemos executar todas expressões anteriores em apenas uma linha, usando o ponto e vírgula `;` para separar as expressões:
```{r Chunk5}
62 + 38; 100:1; 1 * 2 * 3 * 4 * 5 *6 * 7 * 8 * 9 * 10; 4-3
```
As expressões também podem ser separadas por uma nova linha (`<enter>`) entre cada um delas.
```{r Chunk6}
62 + 38
100:1
1 * 2 * 3 * 4 * 5 *6 * 7 * 8 * 9 * 10
4-3
```
## Navegação entre as expressões já avaliadas
Você pode usar as teclas `r emo::ji("arrow_up")` e `r emo::ji("arrow_down")` para navegar entre as expressões já avaliadas pelo R. O que é útil quando precisamos repetir um comando anterior com alguma mudança ou para corrigir um erro de digitação ou a omissão de um parentêses.
Quando a linha de comando é usada por muito tempo a sua tela pode ficar poluída com a saída das expressões anteriores. Para limpar a tela, tecle `Ctrl+l`. Assim o console aparece na parte superior do terminal.
```{r Chunk7}
15 + 4
100:1
#tecle <Ctr + l>
```
Para parar ou cancelar a execução de uma expressão utilize as teclas `Ctrl + C`. As teclas `Ctrl + l` tem o efeito de limpar a tela.
## Comentários
No R, a cerquilha `#` (hashtag) é um caracter especial. Qualquer coisa após esse caracter será ignorada pelo R. Somente as expressões antes da `#` são avaliadas. Por meio desse símbolo de comentário podemos fazer anotações e comentários no código sem atrapalhar a interpretação das expressões pelo R.
```{r Chunk8}
17 + 3 # adicionando 17 e 3
# A expressão abaixo será ignorada
# 10 + 4
```
## Auto preenchimento de funções
O R inclui o preenchimento automático de nomes de funções e arquivos por meio da tecla `<tab>`. Uma lista de possíveis funções que começam com as letras inicialmente digitadas aparecerão.
```{r Chunk9, eval = FALSE}
read#<tab> pressione <tab> para ver as opções de comandos que iniciam com o termo read
```
# R no modo não interativo (*Batch*)
O uso da linha de comando do R é conveniente durante a análise de dados. Mas para algumas tarefas digitar cada comando pode se tornar incoveniente.
Por exemplo, você precisa visualizar graficamente os padrões de variaçao temporal de três variáveis meteorológicas antes e após a passagem sistemas meteorológicos precipitantes. Para esse propósito você precisará ler os dados da estação meteorológica (EM) que estão armazenados em um arquivo, fazer algumas conversões de unidades, plotar o gráfico com as séries temporais das variáveis e salvá-lo em um arquivo `pdf`.
Suponha que você precise repetir esse processo para outras EM. Com o R, assim como em outras linguagem de programação, há uma forma de rodar um conjunto de comandos em sequência e salvar os resultados em um arquivo. Isso é possível através do modo *Batch*, ou seja a execução dos comandos sem inciar o R e sem a intervenção manual.
Esse modo facilita a automatização de tarefas. Nesse caso, alterando apenas a variável que define o nome do arquivo da estação meteorológica, podemos reaplicar os mesmos comandos para outra EM.
Por exemplo, para rodar um suposto script `gera_graficos.R`, sem ter que abrir o R e digitar os comandos para fazer o gráfico, utilizaríamos o comando:
```
$ R CMD BATCH gera_graficos.R
```
Podemos criar um arquivo texto chamado `script1.R` e digitar todos comandos dessa aula nele.
```
$ cd /home/lsi/nomealuno
$ gedit script1.R &
```
Copie os comandos abaixo num arquivo novo criado no [gedit](http://wiki.ubuntu-br.org/Gedit) ou outro editor de texto do Linux.
```{r Chunk10, eval = FALSE}
62 + 38
1:100
1 * 2 * 3 * 4 * 5 *6 * 7 * 8 * 9 * 10
4-3
## salvando um gráfico da sequência de 1 a 100 em um arquivo pdf
pdf("plot_script1.pdf") # cria e abre um arquivo pdf
plot(1:100) # faz o gráfico
dev.off() # fecha o arquivo pdf
```
Rode o R em modo **Batch** informando o nome do script.
```
$ R CMD BATCH script1.R
```
O R rodará os comandos dentro do arquivo especificado `script1.R` e criará um arquivo de saída chamado `script1.Rout` com os resultados. Você também pode especificar o nome daquele arquivo de saída. Por exemplo vamos salvar o arquivo de saída como `saida_script1_aDataDeHoje.log`
```
$ R CMD BATCH script1.R saida_script1_`date "+%y%m%d"`.log
```
Para mais informações sobre rodar o R na linha de comando do Linux digite no terminal `$ R --help`.
## Rodando script de dentro do R
No modo iterativo, ou seja pela linha de comando, também é possível rodar comandos no modo *Batch* através da função `source()`.
```{r Chunk21, eval = FALSE}
source("R/script1.R")
```
<br/>
<span style="color:red; font-size:1.1em;">notas de aula da aula2 estão disponíveis [aqui](https://www.dropbox.com/sh/e29t7jkse4kpwdi/AABNUiR6-LaYlb8Ng7j-6L7wa?dl=0) </span>
<br/>
<p style="font-family: verdana; font-size: 14px; font-style: italic; background: whitesmoke; color: black; line-height: 14px;width: 900px;">Próximo: [Conhecendo o RStudio](https://rawgit.com/lhmet/adar-ufsm/master/A2_rstudio.nb.html)</p>