# Clase del 23 agosto 2022
###### tags: `Curso IPE 2022`
## Vez anterior
https://www.i3s.unice.fr/~malapert/R/pdf/base-r.pdf
## Ejercicios
1. Hacer un vector con los numeros impares del 1 al 100.
```R
> x <- seq(1, 100, by=2)
[1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
[17] 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63
[33] 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95
[49] 97 99
```
2. Qué significan los "indices" de un vector? Para qué se usan los paréntesis rectos?
```R
> a <- c("A", "B", "C")
> a[1]
"A"
> a[3]
"C"
> a[2:3]
"B" ""
```
3. Generar un vector `x` con los numeros impares de 1 a 100. Definir otro vector `y` a partir de `x` que solo tiene aquellos numeros que son mayores que 50.
```R
> x <- seq(1, 100, by=2)
> x[x>50]
[1] 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95
[24] 97 99
> y=x[x>50]
```
Comentario: observar que el filtro que estamos aplicando se puede entender como una operacion entre conjuntos. Sean $X = \{i \in \mathbb{N} : 1 \leq i \leq 100, i \text{ impar}\}$ e $W = \{i \in \mathbb{N} : 50 < i \leq 100\}$, entonces $Y = X \cap W$.
4. Dado un vector `x`, devolver otro que tiene *todos* los elementos maximos.
```R
> x <- c(3, 50, 12, 50, 3)
> x[x == max(x)]
[1] 50 50
```
```R
> y <- c(3, 100, 12, 50, 3, 100, 100, 3, 50)
> y[y == max(y)]
[1] 100 100 100
```
5. Sean $X = \{3, 4, 5, 7\}$, $Y = \{4, -1, 5\}$ y $Z = \{i \in \mathbb{Z}: -100 \leq i \leq 100\}$. Generar $W = (Z \cap X) - Y$, donde $-$ es la diferencia de conjuntos.
```R
> x <- c(3,4,5,7)
> y <- c(4,-1,5)
> z <- seq(-100,100,by=1)
> w <- z[z %in% x]
> w
[1] 3 4 5 7
> w <- w[!(w %in% y)]
> w
[1] 3 7
```
Tambien se podria hacer en una linea:
```R
> z[(z %in% x) & !(z %in% y)]
[1] 3 7
```
----