SL <- select(iris, Sepal.Length)Error in `select()`:
! não foi possível encontrar a função "select"
O artigo R: A Language for Data Analysis and Graphics1, escrito pelos desenvolvedores da linguagem George Ross Ihaka e Robert Clifford Gentleman, marca o início de uma nova era no processamento e análise de dados: o desenvolvimento do software R.

O R é uma linguagem e ambiente estatístico que traz muitas vantagens para o usuário, embora elas não sejam tão óbvias inicialmente:
No software R, todos os comandos são digitados e o mouse é pouco usado. Pode parecer antigo, pouco amigável ou até pobre em recursos visuais, mas isso faz com que nos deparemos com o melhor recurso do R: a sua flexibilidade. Para usuários familiarizados, a linguagem do R se torna clara e simples. Com poucos comandos, funções poderosas podem ser criadas5, e o usuário está sempre consciente do que foi pedido por meio da ELC (meus dados, minhas análises!). Isso contrasta com pacotes que possuem uma interface amigável (point-and-click), mas que escondem a dinâmica dos cálculos e, potencialmente, os seus erros. Finalmente, o R fornece uma ampla variedade de procedimentos estatísticos, desde os básicos até os que exigem grande esforço computacional (modelagem linear e não linear, testes estatísticos clássicos, análise de séries temporais, classificação, agrupamento etc.), além de recursos gráficos elegantes. Um dos pontos fortes do R é a facilidade com que gráficos de qualidade podem ser produzidos, incluindo símbolos matemáticos e fórmulas, quando necessário. O software R está disponível para uma ampla variedade de plataformas UNIX e sistemas similares (incluindo FreeBSD e Linux), Windows e macOS.
Quem já é usuário de softwares por linhas de comando, como o SAS, provavelmente não vai notar muita diferença. Toda análise se resume à seguinte sequência: dados > códigos > saída. A experiência do usuário com o R, no entanto, pode ser mais atrativa utilizando o RStudio6. O RStudio é um software de código aberto e gratuito, disponibilizado publicamente em 28/02/2011. Trata-se de um ambiente de desenvolvimento integrado (IDE) para R que inclui:
Nesta seção serão abordados alguns aspectos básicos para que o usuário do R possa desenvolver as suas análises. Será dado enfoque às áreas básicas da interface, cujo conhecimento é necessário para que um usuário iniciante possa realizar sua primeira análise. A figura abaixo mostra as principais janelas do RStudio, incluindo o script, o console, a “área de trabalho” e o output para gráficos.

O painel do canto inferior direito, além de servir como output para gráficos (Plots), é também o local onde os pacotes utilizados nas análises são instalados (Packages) e onde mais informações sobre as funções podem ser encontradas (Help).
O primeiro passo é criar um novo script, por meio do menu File > New File > R Script ou utilizando o atalho Ctrl+Shift+N. Para salvar um script, devemos clicar no botão com o símbolo de disquete, escolher o nome do arquivo e o diretório onde ele será armazenado no seu computador. Algumas dicas importantes:
Escolha sempre um nome sem caracteres especiais (ex., ç, ã, é etc.);
Escolha sempre um nome curto ou abreviado, que identifique a finalidade das linhas de comando escritas (ex., dftese);
Evite espaços se o nome do arquivo for composto. Para isso, use um underscore ‘_’ (ex., df_tese).
Antes de iniciar as análises, recomenda-se escolher um diretório onde devem estar os inputs (dados) e para onde serão enviados os outputs (gráficos, arquivos .txt, .xlsx etc.). Para selecionar o diretório, basta seguir o caminho Session > Set Working Directory > Choose Directory ou utilizar as teclas de atalho Ctrl+Shift+H.

Se você realizou o download do software R pela primeira vez e achou um tanto quanto “estranho” o pequeno tamanho do arquivo (~80 MB), provavelmente deve ter se perguntado como um software estatístico tão poderoso pode ser comprimido em um arquivo tão pequeno (pequeno em comparação com os +20 GB do SAS). A resposta é simples: somente os pacotes básicos do R são baixados com o arquivo de instalação. À medida que o usuário necessita realizar uma análise específica, torna-se necessária a instalação de um pacote que contenha uma função para realizar tal análise.
A instalação dos pacotes pode ser realizada conforme a figura abaixo ou utilizando o comando install.packages(). Após a instalação do pacote, o usuário deve utilizar a função library() para que o pacote seja carregado e as suas funções possam ser utilizadas. Quando o usuário tenta utilizar uma função pertencente a um determinado pacote e esse pacote não está instalado (ou carregado), um erro é exibido.


nls()Como exemplo inicial, vamos tentar selecionar a variável Sepal.Length do conjunto de dados nativo iris utilizando a função abaixo. Cuidado: spoilers do pacote dplyr!
Para isso, o código a seguir é digitado no script e executado selecionando-se a linha e clicando no botão Run ou utilizando o atalho Ctrl+Enter.
Error in `select()`:
! não foi possível encontrar a função "select"
Neste caso, um erro é exibido, pois o pacote dplyr não está instalado ou carregado. Caso ele já esteja instalado, o erro acima é resolvido carregando-se o pacote antes de executar a função.
Caso o pacote dplyr não esteja instalado, a maneira mais fácil de instalá-lo é instalando a coleção de pacotes tidyverse7, seguindo os passos da figura Instalando pacotes (acima) ou utilizando o seguinte comando:
O tidyverse é uma coleção de pacotes R projetados para a ciência de dados, contendo, dentre outros, os seguintes pacotes que serão utilizados neste material:
Praticamente todas as rotinas realizadas no R são baseadas em bibliotecas de códigos. Para instalar os pacotes necessários para a reprodução deste material, o seguinte código é utilizado:
É provável que a primeira instalação seja um pouco demorada, pois todas as dependências serão instaladas. Após finalizada a instalação, basta carregar o pacote que será utilizado com library().
Os pacotes disponibilizados no software R estão em constante atualização. Para verificar novas versões de pacotes, basta ir em Packages > Update, no painel inferior direito, conforme demonstrado na figura abaixo.

Por fim, para citar os pacotes, recomenda-se verificar a referência por meio da função citation(). Para o pacote metan, por exemplo, a referência oficial é o artigo que descreve o pacote.
Please, support this project by citing it in your publications!
Olivoto T, Lúcio AD (2020). "metan: An R package for
multi‐environment trial analysis." _Methods in Ecology and
Evolution_, *11*(6), 783-789. doi:10.1111/2041-210X.13384
<https://doi.org/10.1111/2041-210X.13384>.
Uma entrada BibTeX para usuários(as) de LaTeX é
@Article{,
title = {metan: An R package for multi‐environment trial analysis},
author = {Tiago Olivoto and Alessandro Dal’Col Lúcio},
year = {2020},
journal = {Methods in Ecology and Evolution},
volume = {11},
number = {6},
pages = {783-789},
doi = {10.1111/2041-210X.13384},
}
Os comandos elementares podem ser divididos em expressões e atribuições. Por exemplo, podemos estar interessados em resolver a seguinte expressão \(10+15=25\).
Ao executar o comando no console, o R avalia a expressão e retorna o resultado. Caso queiramos armazenar esse resultado em algum objeto, usamos o operador de atribuição <- (atalho: Alt + -), no formato objeto <- operacao. Considerando o mesmo caso anterior, um objeto soma é criado com:
Conhecendo esses comandos elementares, podemos passar para as operações matemáticas mais utilizadas, que são cruciais em qualquer linguagem de programação. No R, essas operações são baseadas em símbolos ou funções semelhantes aos da maioria dos outros softwares estatísticos.
[1] 2
[1] 1
[1] 4
[1] 9
[1] 36
[1] 2
[1] 16
[1] 2.302585
[1] 2
[1] 2.688117e+43
Para a multiplicação de matrizes, utiliza-se %*% em vez de *. Note a diferença no exemplo abaixo.
[,1] [,2]
[1,] 1 3
[2,] 2 4
[,1] [,2]
[1,] 5 7
[2,] 6 8
O resultado da multiplicação da matriz x e y é dado por:
\[ \left( {\begin{array}{*{20}{c}}{1 \cdot 5 + 3 \cdot 6}&{1 \cdot 7 + 3 \cdot 8}\\{2 \cdot 5 + 4 \cdot 6}&{2 \cdot 7 + 4 \cdot 8}\end{array}} \right) = \left( {\begin{array}{*{20}{c}}{23}&{31}\\{34}&{46}\end{array}} \right) \]
A função t() é utilizada para transposição de matrizes e solve() para inversão de matrizes. Vamos resolver o seguinte sistema de equações utilizando estes operadores.
\[ \begin{array}{l}{x_1} + 2{x_2} = 4\\{x_1} - {x_2} = 1\end{array} \]
Matricialmente o sistema acima é dado por:
\[ \left[ {\begin{array}{*{20}{c}}{\begin{array}{*{20}{l}}1\\1\end{array}}&{\begin{array}{*{20}{c}}2\\{ - 1}\end{array}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{x_1}}\\{{x_2}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}4\\1\end{array}} \right] \]
Esse sistema de equações é representado por \({\bf{AX}} = {\bf{c}}\) e tem como solução \({\bf{X = }}{{\bf{A}}^{{\bf{ - 1}}}}{\bf{c}}\)
[,1] [,2]
[1,] 1 2
[2,] 1 -1
[,1] [,2]
[1,] 1 1
[2,] 2 -1
[,1] [,2]
[1,] 0.3333333 0.6666667
[2,] 0.3333333 -0.3333333
[1] 4 1
[,1]
[1,] 2
[2,] 1
A função det() é utilizada para calcular o determinante de uma matriz, e a função eigen(), para calcular autovalores e autovetores.
[,1] [,2] [,3]
[1,] 1 3 6
[2,] 2 4 1
[3,] 5 5 9
[1] -68
eigen() decomposition
$values
[1] 12.980067 2.854933 -1.835000
$vectors
[,1] [,2] [,3]
[1,] -0.4785227 0.2342735 -0.9165278
[2,] -0.2017392 -0.8386325 0.2624173
[3,] -0.8545861 0.4917432 0.3018507
[1] 12.980067 2.854933 -1.835000
[,1] [,2] [,3]
[1,] -0.4785227 0.2342735 -0.9165278
[2,] -0.2017392 -0.8386325 0.2624173
[3,] -0.8545861 0.4917432 0.3018507
A função diag() extrai a diagonal de uma matriz ou cria uma matriz cuja diagonal é formada pelos elementos declarados. Os próximos comandos extraem a diagonal de X e criam uma matriz identidade com 3 linhas e 3 colunas.
.qmd) e salve-o em uma pasta de sua preferência.install.packages() é executado uma vez por computador; library() é executado em toda nova sessão. A mensagem could not find function quase sempre significa que um pacote não foi carregado.<- (atalho Alt + -) para guardar resultados em objetos e reutilizá-los depois.setwd() são os Projetos do RStudio (File > New Project), que definem o diretório de trabalho automaticamente.?nome_da_funcao (ex., ?mean) abre a documentação; citation("pacote") mostra como citar o pacote em seus trabalhos.https://www.jstor.org/stable/1390807?seq=1#page_scan_tab_contents↩︎
Fonte: Robert Gentleman <https://biocasia2020.bioconductor.org/>; Ross Ihaka: <https://stat.auckland.ac.nz/>↩︎
https://www.gnu.org/licenses/quick-guide-gplv3.html↩︎
https://www.r-project.org/↩︎
Veja uma breve história de como o pacote metan, desenvolvido pelo prof. Olivoto, foi concebido https://methodsblog.com/2020/05/28/metan_package/↩︎
https://www.rstudio.com/↩︎
https://www.tidyverse.org/↩︎
---
title: "1. O software R"
editor_options:
chunk_output_type: console
---
# O software R
O artigo [R: A Language for Data Analysis and Graphics](https://www.jstor.org/stable/1390807?seq=1#page_scan_tab_contents)[^1], escrito pelos desenvolvedores da linguagem George Ross Ihaka e Robert Clifford Gentleman, marca o início de uma nova era no processamento e análise de dados: o desenvolvimento do software R.
[^1]: https://www.jstor.org/stable/1390807?seq=1#page_scan_tab_contents
![Criadores do R[^2]](figs/autores_r.png)
[^2]: Fonte: Robert Gentleman \<https://biocasia2020.bioconductor.org/\>; Ross Ihaka: \<https://stat.auckland.ac.nz/\>
O R é uma linguagem e ambiente estatístico que traz muitas vantagens para o usuário, embora elas não sejam tão óbvias inicialmente:
- O R é um software livre (livre no sentido de liberdade) distribuído sob a [Licença Pública Geral](https://www.gnu.org/licenses/quick-guide-gplv3.html)[^4], podendo ser copiado, distribuído e instalado livremente em diversos computadores. Isso contrasta com softwares comerciais, cujas licenças, geralmente restritivas, não permitem que cópias sejam distribuídas ou instaladas em mais de um computador sem a devida licença (que, obviamente, é paga!);
- A grande maioria dos softwares livres é gratuita, e o R não é exceção;
- O código-fonte do R está disponível para os usuários e atualmente é gerenciado por um grupo chamado [R Core Team](https://www.r-project.org/)[^5]. A vantagem de ter o código aberto é que falhas podem ser detectadas e rapidamente corrigidas. Esse sistema de revisão depende da participação dos usuários. Em contraste, em muitos pacotes comerciais, as falhas não são corrigidas até o lançamento da próxima versão, o que pode levar vários anos;
- O R fornece uma interface de entrada por linha de comando (ELC).
[^4]: https://www.gnu.org/licenses/quick-guide-gplv3.html
[^5]: https://www.r-project.org/
No software R, todos os comandos são digitados e o mouse é pouco usado. Pode parecer antigo, pouco amigável ou até pobre em recursos visuais, mas isso faz com que nos deparemos com o melhor recurso do R: a sua flexibilidade. Para usuários familiarizados, a linguagem do R se torna clara e simples. Com poucos comandos, funções poderosas podem ser criadas[^6], e o usuário está sempre consciente do que foi pedido por meio da ELC (meus dados, minhas análises!). Isso contrasta com pacotes que possuem uma interface amigável (*point-and-click*), mas que escondem a dinâmica dos cálculos e, potencialmente, os seus erros. Finalmente, o R fornece uma ampla variedade de procedimentos estatísticos, desde os básicos até os que exigem grande esforço computacional (modelagem linear e não linear, testes estatísticos clássicos, análise de séries temporais, classificação, agrupamento etc.), além de recursos gráficos elegantes. Um dos pontos fortes do R é a facilidade com que gráficos de qualidade podem ser produzidos, incluindo símbolos matemáticos e fórmulas, quando necessário. O software R está disponível para uma ampla variedade de plataformas UNIX e sistemas similares (incluindo FreeBSD e Linux), Windows e macOS.
[^6]: Veja uma breve história de como o pacote metan, desenvolvido pelo prof. Olivoto, foi concebido <https://methodsblog.com/2020/05/28/metan_package/>
# O software RStudio
Quem já é usuário de softwares por linhas de comando, como o SAS, provavelmente não vai notar muita diferença. Toda análise se resume à seguinte sequência: *dados \> códigos \> saída*. A experiência do usuário com o R, no entanto, pode ser mais atrativa utilizando o [RStudio](https://www.rstudio.com/)[^7]. O RStudio é um software de código aberto e gratuito, disponibilizado publicamente em 28/02/2011. Trata-se de um ambiente de desenvolvimento integrado (IDE) para R que inclui:
[^7]: https://www.rstudio.com/
- Janelas de edição de texto a partir das quais o código pode ser enviado para o console e/ou salvo no sistema operacional;
- Listas de objetos em sua área de trabalho;
- Histórico infinito dos comandos, facilmente pesquisável, com a possibilidade de reinserir no console um comando a partir do histórico;
- Interface com o sistema operacional para acesso a arquivos;
- Janela de ajuda com botões de voltar e avançar;
- Download de pacotes.
Nesta seção serão abordados alguns aspectos básicos para que o usuário do R possa desenvolver as suas análises. Será dado enfoque às áreas básicas da interface, cujo conhecimento é necessário para que um usuário iniciante possa realizar sua primeira análise. A figura abaixo mostra as principais janelas do **RStudio**, incluindo o *script*, o *console*, a *"área de trabalho"* e o *output* para gráficos.

O painel do canto inferior direito, além de servir como *output* para gráficos (*Plots*), é também o local onde os pacotes utilizados nas análises são instalados (*Packages*) e onde mais informações sobre as funções podem ser encontradas (*Help*).
## Meu primeiro script
O primeiro passo é criar um novo script, por meio do menu *File \> New File \> R Script* ou utilizando o atalho *Ctrl+Shift+N*. Para salvar um script, devemos clicar no botão com o símbolo de disquete, escolher o nome do arquivo e o diretório onde ele será armazenado no seu computador. Algumas dicas importantes:
- Escolha sempre um nome sem caracteres especiais (ex., ç, ã, é etc.);
- Escolha sempre um nome curto ou abreviado, que identifique a finalidade das linhas de comando escritas (ex., dftese);
- Evite espaços se o nome do arquivo for composto. Para isso, use um *underscore* '\_' (ex., df_tese).
## Diretório de trabalho
Antes de iniciar as análises, recomenda-se escolher um diretório onde devem estar os *inputs* (dados) e para onde serão enviados os *outputs* (gráficos, arquivos .txt, .xlsx etc.). Para selecionar o diretório, basta seguir o caminho *Session \> Set Working Directory \> Choose Directory* ou utilizar as teclas de atalho *Ctrl+Shift+H*.

# Pacotes
Se você realizou o download do software R pela primeira vez e achou um tanto quanto "estranho" o pequeno tamanho do arquivo (\~80 MB), provavelmente deve ter se perguntado como um software estatístico tão poderoso pode ser comprimido em um arquivo tão pequeno (pequeno em comparação com os +20 GB do SAS). A resposta é simples: somente os pacotes básicos do R são baixados com o arquivo de instalação. À medida que o usuário necessita realizar uma análise específica, torna-se necessária a instalação de um pacote que contenha uma função para realizar tal análise.
A instalação dos pacotes pode ser realizada conforme a figura abaixo ou utilizando o comando `install.packages()`. Após a instalação do pacote, o usuário deve utilizar a função `library()` para que o pacote seja carregado e as suas funções possam ser utilizadas. Quando o usuário tenta utilizar uma função pertencente a um determinado pacote e esse pacote não está instalado (ou carregado), um erro é exibido.


Como exemplo inicial, vamos tentar selecionar a variável *Sepal.Length* do conjunto de dados nativo `iris` utilizando a função abaixo. **Cuidado: spoilers do pacote dplyr!**
Para isso, o código a seguir é digitado no script e executado selecionando-se a linha e clicando no botão *Run* ou utilizando o atalho `Ctrl+Enter`.
```{r error=TRUE}
SL <- select(iris, Sepal.Length)
```
Neste caso, um erro é exibido, pois o pacote **dplyr** não está instalado ou carregado. Caso ele já esteja instalado, o erro acima é resolvido carregando-se o pacote antes de executar a função.
```{r eval=FALSE}
library(dplyr)
SL <- select(iris, Sepal.Length)
```
Caso o pacote **dplyr** não esteja instalado, a maneira mais fácil de instalá-lo é instalando a coleção de pacotes [tidyverse](https://www.tidyverse.org/)[^8], seguindo os passos da figura *Instalando pacotes* (acima) ou utilizando o seguinte comando:
[^8]: https://www.tidyverse.org/
```{r eval=FALSE, message=FALSE, warning=FALSE}
install.packages("tidyverse", dependencies = TRUE)
library(tidyverse)
```
O **tidyverse** é uma coleção de pacotes R projetados para a ciência de dados, contendo, dentre outros, os seguintes pacotes que serão utilizados neste material:
- **ggplot2**, para criação de gráficos.
- **dplyr**, para manipulação de dados.
- **tidyr**, para organização de dados.
- **tibble**, para criação de tibbles.
Praticamente todas as rotinas realizadas no R são baseadas em bibliotecas de códigos. Para instalar os pacotes necessários para a reprodução deste material, o seguinte código é utilizado:
```{r, message=FALSE, warning=FALSE, eval=FALSE}
pacotes <- c("tidyverse", "esquisse", "metan", "rio")
# instalar os pacotes
install.packages(pacotes)
```
É provável que a primeira instalação seja um pouco demorada, pois todas as dependências serão instaladas. Após finalizada a instalação, basta carregar o pacote que será utilizado com `library()`.
```{r message=FALSE, warning=FALSE}
library(tidyverse)
```
Os pacotes disponibilizados no software *R* estão em constante atualização. Para verificar novas versões de pacotes, basta ir em *Packages \> Update*, no painel inferior direito, conforme demonstrado na figura abaixo.

Por fim, para citar os pacotes, recomenda-se verificar a referência por meio da função `citation()`. Para o pacote `metan`, por exemplo, a referência oficial é o [artigo](https://besjournals.onlinelibrary.wiley.com/doi/full/10.1111/2041-210X.13384) que descreve o pacote.
```{r, echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE, error = FALSE}
citation("metan")
```
# Comandos elementares
## Atribuições
Os **comandos elementares** podem ser divididos em **expressões** e **atribuições**. Por exemplo, podemos estar interessados em resolver a seguinte expressão $10+15=25$.
```{r}
10 + 15
```
Ao executar o comando no console, o R avalia a expressão e retorna o resultado. Caso queiramos armazenar esse resultado em algum objeto, usamos o operador de atribuição `<-` (atalho: `Alt + -`), no formato `objeto <- operacao`. Considerando o mesmo caso anterior, um objeto `soma` é criado com:
```{r}
soma <- 10 + 15
```
## Operadores matemáticos
Conhecendo esses comandos elementares, podemos passar para as operações matemáticas mais utilizadas, que são cruciais em qualquer linguagem de programação. No R, essas operações são baseadas em símbolos ou funções semelhantes aos da maioria dos outros softwares estatísticos.
```{r, echo = TRUE, message = FALSE, warning = FALSE}
1 + 1 # Soma
2 - 1 # Subtração
2 * 2 # Multiplicação
1 + 2 * 2 ^ 2 # Eleva ao quadrado, multiplica e soma
((1 + 2) * 2) ^ 2 # Soma, multiplica e eleva ao quadrado
sqrt(4) # Raiz quadrada
4^2 # Potência
log(10) # Por padrão, o logaritmo é de base e (logaritmo natural)
log(100, 10) # Logaritmo de base 10
exp(100) # exponencial
```
## Álgebra de matrizes (avançado)
Para a multiplicação de matrizes, utiliza-se `%*%` em vez de `*`. Note a diferença no exemplo abaixo.
```{r, message = FALSE, warning = FALSE}
(x <- matrix(1:4, ncol = 2))
(y <- matrix(5:8, ncol = 2))
```
O resultado da multiplicação da matriz `x` e `y` é dado por:
$$
\left( {\begin{array}{*{20}{c}}{1 \cdot 5 + 3 \cdot 6}&{1 \cdot 7 + 3 \cdot 8}\\{2 \cdot 5 + 4 \cdot 6}&{2 \cdot 7 + 4 \cdot 8}\end{array}} \right) = \left( {\begin{array}{*{20}{c}}{23}&{31}\\{34}&{46}\end{array}} \right)
$$
```{r, message = FALSE, warning = FALSE}
x * y # Errado
x %*% y # Certo
```
A função `t()` é utilizada para transposição de matrizes e `solve()` para inversão de matrizes. Vamos resolver o seguinte sistema de equações utilizando estes operadores.
$$
\begin{array}{l}{x_1} + 2{x_2} = 4\\{x_1} - {x_2} = 1\end{array}
$$
Matricialmente o sistema acima é dado por:
$$
\left[ {\begin{array}{*{20}{c}}{\begin{array}{*{20}{l}}1\\1\end{array}}&{\begin{array}{*{20}{c}}2\\{ - 1}\end{array}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{x_1}}\\{{x_2}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}4\\1\end{array}} \right]
$$
Esse sistema de equações é representado por ${\bf{AX}} = {\bf{c}}$ e tem como solução ${\bf{X = }}{{\bf{A}}^{{\bf{ - 1}}}}{\bf{c}}$
```{r echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE}
(A <- matrix(c(1, 1, 2, -1), ncol = 2))
# Transposta de A
t(A)
# resolução do sistema de equações
(Ainv <- solve(A)) # Obtém a inversa de A
(c <- c(4, 1)) # Vetor C
(X <- Ainv %*% c)
```
::: callout-tip
Note que o mesmo resultado anterior pode ser obtido sem a necessidade de atribuição, ao declarar todas as operações em um único comando:
```{r}
solve(matrix(c(1, 1, 2, -1), ncol = 2)) %*% c(4, 1)
```
:::
A função `det()` é utilizada para calcular o determinante de uma matriz, e a função `eigen()`, para calcular autovalores e autovetores.
```{r echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE}
(X <- matrix(c(1, 2, 5, 3, 4, 5, 6, 1, 9), ncol = 3))
(detX <- det(X))
```
```{r echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE}
(av <- eigen(X))
av$values # Extrai os autovalores
```
```{r echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE}
av$vectors # Extrai os autovetores
```
A função `diag()` extrai a diagonal de uma matriz ou cria uma matriz cuja diagonal é formada pelos elementos declarados. Os próximos comandos extraem a diagonal de X e criam uma matriz identidade com 3 linhas e 3 colunas.
```{r echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE}
diag(X)
diag(x = 1, nrow = 3, ncol = 3)
```
# Fóruns e materiais de apoio
::: {layout-ncol="3"}
[](https://www.youtube.com/watch?v=e89kyYJgWqc&list=PLJG9aEbqLtMiHWzBMBuakz33LtehOaUTD)
[](https://github.com/bendeivide/rapidinhasdor)
[](https://www.youtube.com/channel/UCDGyvLCJnv9RtTY1YMBMVNQ)
:::
# Homework
::: callout-important
## Meu primeiro relatório em R
- Utilizando o RStudio, crie um documento no formato Quarto (`.qmd`) e salve-o em uma pasta de sua preferência.
- Neste relatório, apresente os comandos para a instalação de dois pacotes que você acredita serem úteis em sua área de estudo.
- Descreva brevemente os pacotes instalados.
:::
{{< video https://www.youtube.com/embed/MO9jPS1xZdQ >}}
::: callout-tip
## Para fechar: o que levar deste módulo
- **R é o motor, RStudio é o painel**: o R faz os cálculos; o RStudio apenas torna o trabalho mais confortável. Ambos são livres e gratuitos.
- **Script sempre**: escreva seus comandos em um script (ou documento Quarto), nunca apenas no console. Assim, sua análise fica documentada e reproduzível.
- **Instalar ≠ carregar**: `install.packages()` é executado *uma vez* por computador; `library()` é executado *em toda nova sessão*. A mensagem `could not find function` quase sempre significa que um pacote não foi carregado.
- **Atribuição**: use `<-` (atalho `Alt + -`) para guardar resultados em objetos e reutilizá-los depois.
- **Organize-se desde o início**: use nomes de arquivos e pastas sem acentos e sem espaços. Uma excelente alternativa ao `setwd()` são os **Projetos do RStudio** (*File \> New Project*), que definem o diretório de trabalho automaticamente.
- **Peça ajuda ao próprio R**: `?nome_da_funcao` (ex., `?mean`) abre a documentação; `citation("pacote")` mostra como citar o pacote em seus trabalhos.
:::
```{=html}
<div align='center'><a href='https://www.free-website-hit-counter.com'><img src='https://www.free-website-hit-counter.com/c.php?d=9&id=138588&s=2' border='0' alt='Free Website Hit Counter'></a><br / ><small><a href='https://www.free-website-hit-counter.com' title="Free Website Hit Counter">Free website hit counter</a></small></div>
```