Como dito, Aqui inicia a seção de Teoria dos Conjuntos, conceito muito importante para a construção do raciocínio de funções e principalmente análises estatísticas.
Aqui no curso de ADS é importante saber que a teoria dos conjuntos e suas leis é a base de funcionamento dos Banco de Dados. Nenhum sistema funciona sem trabalhar com este conceito.
Podemos resumir programar como sendo a manipulação técnica de dois macro conhecimentos. 1º Conceitos de funções - para construir os algoritmos do backend, que são todas as rotinas que fazem um sistema funcionar e 2º Teoria dos Conjuntos que regulamenta e permite a existência dos Banco de Dados Relacionais, principio da construção de qualquer software empresarial ou comercial.
Voçê pode ver um pouco mais em https://youtu.be/1-fyVSgvbis
Vamoas agora estudar um pouco da relação dos elementos de um conjunto:
Outro conceito importante é entender quando dois conjuntos são diferentes. Eles terão esta caracteristicas quando um possuir todos os elementos que o segundo. Veja o exemplo abaixo:
A <- c(0,1,2,3)
B <- 0:3
C <- 1:5
A == B
## [1] TRUE TRUE TRUE TRUE
A == C
## Warning in A == C: longer object length is not a multiple of shorter object
## length
## [1] FALSE FALSE FALSE FALSE FALSE
B == C
## Warning in B == C: longer object length is not a multiple of shorter object
## length
## [1] FALSE FALSE FALSE FALSE FALSE
Veja que neste caso, o valor de cada membro do conjunto A é Igual a um membro do Conjunto B. Nos demais casos eles não são idênticos, logo os conjuntos não são iguais.
Aprenda mais em https://youtu.be/AQKwBGw70dk
São classificação em relação a seu número de elementos. Temos um conjunto vazio quando não podemos encontrar nenhum elemento que satisfaça nossa condição. No exemplo abaixo podemos verificar esta afirmação:
A[A>3]
## numeric(0)
Veja que nenhuma valor presente no vetor A satisfaz a condição estabelecida. Assim dizemos que a resposta a essa solicitação será vazia.
Contudo, caso queiramos saber se o vetor A possui algum valor igual a 3, teremos a seguinte solução:
A[A == 3]
## [1] 3
Veja que uma das soluções, neste caso a última atende ao requisito, o que nos classifica essa solicitaçao como unitária, ou seja, possui apenas um valor como retorno.
Agora veremos quando o retorno é satisfatório para todos os valores possíveis, ou seja, o nossa resposta é igual o nosso conjunto universo de estudo.
A[A < 10]
## [1] 0 1 2 3
Neste caso temos o típico conjunto universo, ou seja, todas as respostas obtidas são as resposta possíveis.
Você pode aprofundar este conceito em https://youtu.be/u3i99KR1RWc
Neste caso tratamos como subconjuntos de um conjunto, uma solicitação que reproduz parte do conjunto principal. Veja o exemplo abaixo:
A_1 <- A[A>1 & A<3]
A_1
## [1] 2
Veja que A_1 possui algum(s) elementos de A porém nenhum que não esteja em A, assim A_1 é subconjunto de A.
Veja mais sobre este assunto em https://youtu.be/bsrKdEhg8ng
Vamos agora conhecer um banco de dados do R que nos permitirá explorar nossos conhecimentos. O banco de dados que iremos conhecer é o iris, que traz medições e parâmetros feitos desta planta da figura abaixo:
Vamos importar o dataset e vermos as primeiras informações:
dados <- iris
head(dados)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
Outra maneira de conhecemos o Dataset e fazermos um resumo de suas estatísticas:
summary(dados)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
Veja que são 150 amostras, 50 de cada espécie e temos exatamente 4 medidas de cada uma delas. Comprimento e largura da Sepala e Comprimento e lagruga da pêtala.
Agora vamos por exemplo fazer uma simples consulta. Quero criar um subconjutno do cojunto dados que tenha apenas as plantas da espécie setosa. Veja como é feito:
dados_setosa <- dados[dados$Species == "setosa",]
head(dados_setosa)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
Podemos também querer apenas plantas que tenham comprimento de sêpala “Sepal.Length” maiores que 5.8. Então fazemos:
dados[dados$Sepal.Length > 5.8,]
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
1 Em cada caso, faça uma consulta que possa retornar as seguintes informações: