require(matrixcalc)
## Carregando pacotes exigidos: matrixcalc
require(Matrix)
## Carregando pacotes exigidos: Matrix
require(ibd)
## Carregando pacotes exigidos: ibd
require(pracma)
## Carregando pacotes exigidos: pracma
## 
## Attaching package: 'pracma'
## The following objects are masked from 'package:Matrix':
## 
##     expm, lu, tril, triu
require(matlib)
## Carregando pacotes exigidos: matlib
## 
## Attaching package: 'matlib'
## The following objects are masked from 'package:pracma':
## 
##     angle, inv
## The following object is masked from 'package:matrixcalc':
## 
##     vec
require(MASS)
## Carregando pacotes exigidos: MASS
require(tidyverse)
## Carregando pacotes exigidos: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ purrr::cross()  masks pracma::cross()
## ✖ tidyr::expand() masks Matrix::expand()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ tidyr::pack()   masks Matrix::pack()
## ✖ dplyr::select() masks MASS::select()
## ✖ tidyr::unpack() masks Matrix::unpack()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
require(DT)
## Carregando pacotes exigidos: DT
require(readxl)
## Carregando pacotes exigidos: readxl

Exercício 1) No relatório do Exemplo 2 - dados de sódio e o pacote ggplot2 (basta carregar o tidyverse). a) Crie um boxplot por grupos (baixo teor & alto teor de sódio), colocando os níveis baixo & alto de forma ordenada (da esquerda para a direita), no eixo horizontal ;

require(DT) #pacote datatable
dados=read.table("dados.txt",sep=";",head=TRUE)
datatable(dados,caption="Tabela 1",class = 'cell-border order-column compact hover')
str(dados)
## 'data.frame':    20 obs. of  3 variables:
##  $ Paciente        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ baixo_teor_sodio: int  138 147 146 154 142 156 134 146 143 175 ...
##  $ alto_teor_sodio : int  143 154 147 147 157 158 164 156 151 182 ...
dados
##    Paciente baixo_teor_sodio alto_teor_sodio
## 1         1              138             143
## 2         2              147             154
## 3         3              146             147
## 4         4              154             147
## 5         5              142             157
## 6         6              156             158
## 7         7              134             164
## 8         8              146             156
## 9         9              143             151
## 10       10              175             182
## 11       11              156             151
## 12       12              117             116
## 13       13              157             154
## 14       14              143             149
## 15       15              127             126
## 16       16              134             138
## 17       17              112             115
## 18       18              144             159
## 19       19              117             124
## 20       20              128             125
require(readxl)
dados=readxl::read_excel("banco_modificado.xlsx")
dados$teor <- factor(dados$teor, levels = c("baixo", "alto"))
ggplot(dados, aes(x=teor, y=pressao, fill=teor)) + 
    geom_boxplot()

  1. Comentário sobre os resultados do boxplot
# O boxplot revela que o grupo com baixo teor de sódio tende a apresentar uma pressão arterial mais baixa, 
# com uma mediana inferior e menor dispersão dos valores. Por outro lado, o grupo com alto teor de sódio 
# apresenta uma mediana mais alta, indicando uma possível associação com maior pressão arterial. 
# Além disso, os outliers observados podem indicar variações individuais significativas. 
# Em resumo, os resultados do boxplot sugerem que o aumento do teor de sódio está relacionado a um aumento na pressão arterial, 
# enquanto a redução do sódio pode estar associada à diminuição da pressão.
  1. Crie um problema que contenha: duas matrizes A e B com dimensões compatíveis para multiplicação matricial de pelo menos uma destas: AxB ou BxA; e uma matriz quadrada C de dimensão igual a n, com n>2 e posto de C menor do que n.
# 1. Criando as matrizes A e B com dimensões compatíveis para multiplicar AxB e BxA
set.seed(1234)  # Definindo uma semente para reprodutibilidade

A <- matrix(sample(-10:10, 6, replace = TRUE), nrow = 2, ncol = 3)  # Matriz 2x3
B <- matrix(sample(-10:10, 9, replace = TRUE), nrow = 3, ncol = 3)  # Matriz 3x3
# Mostrando as matrizes A e B
A
##      [,1] [,2] [,3]
## [1,]    5    1   -2
## [2,]   -6    4   -6
B
##      [,1] [,2] [,3]
## [1,]   -5   -9    4
## [2,]    5   -4    3
## [3,]   -7   -5    9
# 2. Criando a matriz quadrada C de dimensão n = 4 (n > 2) com posto menor que 4
C <- matrix(c(1, 2, 3, 4, 2, 4, 6, 8, 0, 0, 1, 1, 3, 6, 9, 12), nrow = 4, ncol = 4, byrow = TRUE)
C
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    2    4    6    8
## [3,]    0    0    1    1
## [4,]    3    6    9   12
  1. Determine AxB (multiplicação matricial), se houver;
AxB <- A %*% B  # Multiplicação de matriz 2x3 com 3x3
AxB  # Resultado
##      [,1] [,2] [,3]
## [1,]   -6  -39    5
## [2,]   92   68  -66
  1. Determine BxA (multiplicação matricial), se houver;
#B tem dimensão 3×3 3×3 e a matriz 𝐴 A tem dimensão 2×3 2×3. Para a multiplicação B⋅A ser possível, o número de
#colunas de𝐵(que é 3) deveria ser igual ao número de linhas de 𝐴(que é 2),
#o que não acontece. O R exibe um erro informando que as dimensões não são compatíveis para a operação.
  1. Determine a forma escalonada da matriz C;
C_escalonada <- pracma::rref(C)  # Forma escalonada da matriz C
C_escalonada
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    0    1
## [2,]    0    0    1    1
## [3,]    0    0    0    0
## [4,]    0    0    0    0
  1. Determine o posto da matriz C;
posto_C <- Rank(C)  # Posto da matriz C
posto_C
## [1] 2
  1. Comente os resultados obtidos.
# - A multiplicacao AxB é possível pois o número de colunas de A é igual ao número de linhas de B.
# - A multiplicacao BxA não é possível porque o número de colunas de B (3) é diferente do número de linhas de A (2).
# - A matriz C possui posto 3, que é menor que sua dimensão (n = 4). O Motivo disso è que a matriz escalonada possui uma linha de zeros.
summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00