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()
# 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. 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
AxB <- A %*% B # Multiplicação de matriz 2x3 com 3x3
AxB # Resultado
## [,1] [,2] [,3]
## [1,] -6 -39 5
## [2,] 92 68 -66
#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.
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
posto_C <- Rank(C) # Posto da matriz C
posto_C
## [1] 2
# - 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