Curso básico de R

Lunes 18 de Octubre

Primera entrega

1 Operaciones básicas sobre vectores

Edwin Pineda

DataIntelligence
date:20-10-2021

1 Instrucción para realizar la tarea

Será enviada la tarea todos los días a las 10 am hora de Chile dividida en tres partes la cual se espera sea resuelta en la jornada diaria. Cada parte debe ser enviada a las 1 pm, 4 pm y 7 pm hora de Chile para ser evaluada en conjunto en unos 15 minutos. Las respuestas se requieren en formato Rpubs, que deberá quedar registrado en la hora indicada en nuestro grupo Data Science DI de Skype, en el que está incluído Patricio para que pueda darle rápido seguimiento a la evolución del proceso de aprendizaje.

Al desarrollar la tarea, y después de consultar brevemente google y no encontrar respuesta, contactarse de inmediato conmigo por favor para no perder tiempo y aprender lo más rápido posible.

2 Teoría


2.1 Vectores

Existen dos tipos de estructuras de una dimensión en R: vectores y listas. Los primeros son los clásicos vectores de las matemáticas: admiten sólo un tipo de dato; los segundos múltiples. Las columnas de una tabla (dataframe) son vectores.

R posee una serie de dataframes de prueba con los que se puede ejercitar. En éste Rpubs utilizaremos algunos.

Puromycin: Velocidad de reacción de una reacción enzimática a la puromicina, un antibiótico.

Despleguemos los primeros 5 registros:

head(Puromycin,8) 
##   conc rate   state
## 1 0.02   76 treated
## 2 0.02   47 treated
## 3 0.06   97 treated
## 4 0.06  107 treated
## 5 0.11  123 treated
## 6 0.11  139 treated
## 7 0.22  159 treated
## 8 0.22  152 treated

2.1.1 Creación de vectores

El código siguiente crea dos vectores, uno numérico y otro categórico de tipo factor. Un factor es una lista con dos valores, generalmente un número y un string. Es útil su uso cuando trabajamos asignándole un código a una categoría.

x <- 1:10
y <- Puromycin$state

Los desplegamos simplemente llamándolos:

x
##  [1]  1  2  3  4  5  6  7  8  9 10
y
##  [1] treated   treated   treated   treated   treated   treated   treated  
##  [8] treated   treated   treated   treated   treated   untreated untreated
## [15] untreated untreated untreated untreated untreated untreated untreated
## [22] untreated untreated
## Levels: treated untreated

Para construir vectores arbitrarios usamos la función de concatenación o los dos puntos:

1:5
## [1] 1 2 3 4 5

Al revés:

5:1
## [1] 5 4 3 2 1

En dos partes:

c(1:5, 5:1)
##  [1] 1 2 3 4 5 5 4 3 2 1

En forma individual:

c(1, 5, -1, 4)
## [1]  1  5 -1  4

Como strings:

c("uno", "dos", "tres")
## [1] "uno"  "dos"  "tres"

Si un elemento no es asignado a un objeto, se muestra en pantalla.

2.1.1.1 Secuencias y repeticiones

Construyamos una secuencia del 1 al 4:

seq(1, 4)
## [1] 1 2 3 4

Que se repita 4 veces:

rep(1:4, 4)
##  [1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

Ahora que una secuencia del 1 al 4 se despliegue en orden:

rep(1:4, each = 4)
##  [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

Del 1 al 4 2 veces:

rep(1:4, 2)
## [1] 1 2 3 4 1 2 3 4

Del 1 al 4 repitiendo cada uno dos veces primero:

rep(1:4, each = 2)
## [1] 1 1 2 2 3 3 4 4

Del 1 al 4 cada vez 2 veces:

rep(1:4, c(2,2,2,2))
## [1] 1 1 2 2 3 3 4 4

Del 1 al 4 en veces descendentes:

rep(1:4, times = 4:1)
##  [1] 1 1 1 1 2 2 2 3 3 4

Del 1 al 4 segun una orden de concatenacion:

rep(1:4, c(2,1,2,1))
## [1] 1 1 2 3 3 4

Del 1 al 4, con saltos cada 2 pero solo hasta la vez cuarta:

rep(1:4, each = 2, len = 4)
## [1] 1 1 2 2
rep(1:4, each = 2, len = 10)
##  [1] 1 1 2 2 3 3 4 4 1 1

Del 1 al 4 que se repita dos veces tres veces:

rep(1:4, each = 2, times = 3)
##  [1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4

2.1.2 Inspección de vectores

Graficamos nuestra base de datos:

plot(Puromycin)

length cuenta columnas:

length(Puromycin)
## [1] 3

La función table cuenta los elementos de un vector por valor. Es una función sumamente importante para examinar vectores categóricos:

table(Puromycin) # ¡muy importante!
## , , state = treated
## 
##       rate
## conc   47 51 67 76 84 86 97 98 107 115 123 124 131 139 144 152 158 159 160 191
##   0.02  1  0  0  1  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0
##   0.06  0  0  0  0  0  0  1  0   1   0   0   0   0   0   0   0   0   0   0   0
##   0.11  0  0  0  0  0  0  0  0   0   0   1   0   0   1   0   0   0   0   0   0
##   0.22  0  0  0  0  0  0  0  0   0   0   0   0   0   0   0   1   0   1   0   0
##   0.56  0  0  0  0  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   1
##   1.1   0  0  0  0  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0
##       rate
## conc   200 201 207
##   0.02   0   0   0
##   0.06   0   0   0
##   0.11   0   0   0
##   0.22   0   0   0
##   0.56   0   1   0
##   1.1    1   0   1
## 
## , , state = untreated
## 
##       rate
## conc   47 51 67 76 84 86 97 98 107 115 123 124 131 139 144 152 158 159 160 191
##   0.02  0  1  1  0  0  0  0  0   0   0   0   0   0   0   0   0   0   0   0   0
##   0.06  0  0  0  0  1  1  0  0   0   0   0   0   0   0   0   0   0   0   0   0
##   0.11  0  0  0  0  0  0  0  1   0   1   0   0   0   0   0   0   0   0   0   0
##   0.22  0  0  0  0  0  0  0  0   0   0   0   1   1   0   0   0   0   0   0   0
##   0.56  0  0  0  0  0  0  0  0   0   0   0   0   0   0   1   0   1   0   0   0
##   1.1   0  0  0  0  0  0  0  0   0   0   0   0   0   0   0   0   0   0   1   0
##       rate
## conc   200 201 207
##   0.02   0   0   0
##   0.06   0   0   0
##   0.11   0   0   0
##   0.22   0   0   0
##   0.56   0   0   0
##   1.1    0   0   0

summary ofrece un pequeño resumen del contenido de un vector. De hecho, cuando aplicábamos summary a una tabla, obteníamos el summary de cada una de sus columnas:

summary(Puromycin)
##       conc             rate             state   
##  Min.   :0.0200   Min.   : 47.0   treated  :12  
##  1st Qu.:0.0600   1st Qu.: 91.5   untreated:11  
##  Median :0.1100   Median :124.0                 
##  Mean   :0.3122   Mean   :126.8                 
##  3rd Qu.:0.5600   3rd Qu.:158.5                 
##  Max.   :1.1000   Max.   :207.0

Desplegamos los primeros seis registros:

head(Puromycin)
##   conc rate   state
## 1 0.02   76 treated
## 2 0.02   47 treated
## 3 0.06   97 treated
## 4 0.06  107 treated
## 5 0.11  123 treated
## 6 0.11  139 treated

Desplegamos los últimos seis registros:

tail(Puromycin)
##    conc rate     state
## 18 0.11  115 untreated
## 19 0.22  131 untreated
## 20 0.22  124 untreated
## 21 0.56  144 untreated
## 22 0.56  158 untreated
## 23 1.10  160 untreated

Repitamos: La función table cuenta los elementos de un vector por valor. Es una función sumamente importante para examinar vectores categóricos:

table(Puromycin$state)
## 
##   treated untreated 
##        12        11

Repitamos: summary ofrece un pequeño resumen del contenido de un vector. De hecho, cuando aplicábamos summary a una tabla, obteníamos el summary de cada una de sus columnas.

2.1.3 Selecciones

Para seleccionar elementos de un vector se usa el corchete []. Pero, a diferencia de lo que ocurre con los dataframes, como los vectores son objetos unidimensionales, no se utiliza la coma para separar entre filas y columnas: no se utiliza la coma. Obviamente, el corchete sigue admitiendo no sólo los índices de los elementos que se quieren extraer, sino que además permite utilizar condiciones lógicas, etc.

Veamos algunos ejemplos:

Elevamos al cuadrado:

x <- 6
x <- x^2
x
## [1] 36

Seleccionamos los primeros tres elementos:

x <- seq(1,3,1)
y <- x[1:3]
y
## [1] 1 2 3

Tomamos el elemento primero y tercero:

x <- seq(1,3,1)
x[c(1,3)]
## [1] 1 3

Seleccionamos los mayores a 25:

x <- seq(1,30,1)
x[x > 25]
## [1] 26 27 28 29 30

Extraemos a la inversa los tres primeros elementos:

x <- seq(1,30,1)
x[3:1]
## [1] 3 2 1

Eliminamos los dos primeros valores:

x <- seq(1,30,1)
x[-(1:2)]
##  [1]  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
## [26] 28 29 30

Eliminamos el último valor:

x <- seq(1,30,1)
x[-length(x)]
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29

El corchete también permite seleccionar elementos de un vector por nombre. En efecto, en R se pueden asociar nombres a los elementos de un vector. Lo hace automáticamente, por ejemplo, table (para poder saber a qué etiqueta corresponde cada conteo):

z <- table(Puromycin$state)
z["untreated"]
## untreated 
##        11
z[c("treated", "untreated")]
## 
##   treated untreated 
##        12        11

Una propiedad muy importante del corchete es que permite, además de seleccionar, cambiar el contenido de los elementos seleccionados de un vector. Por ejemplo:

z <- 1:10
z[z < 5] <- 100
z
##  [1] 100 100 100 100   5   6   7   8   9  10

Reemplazar subselecciones es muy útil: permitirá, por ejemplo, cambiar las edades negativas por un valor con sentido, sustituir los nulos por un determinado valor por defecto, reemplazar los valores que excedan un tope por dicho tope, etc. El nombre de las columnas de una tabla también es un vector. Por eso, para cambiar el nombre de una columna podemos hacer lo siguiente:

mi.Puromycin <- Puromycin # una copia de iris
colnames(mi.Puromycin)[2] <- "Especie"
mi.Puromycin
##    conc Especie     state
## 1  0.02      76   treated
## 2  0.02      47   treated
## 3  0.06      97   treated
## 4  0.06     107   treated
## 5  0.11     123   treated
## 6  0.11     139   treated
## 7  0.22     159   treated
## 8  0.22     152   treated
## 9  0.56     191   treated
## 10 0.56     201   treated
## 11 1.10     207   treated
## 12 1.10     200   treated
## 13 0.02      67 untreated
## 14 0.02      51 untreated
## 15 0.06      84 untreated
## 16 0.06      86 untreated
## 17 0.11      98 untreated
## 18 0.11     115 untreated
## 19 0.22     131 untreated
## 20 0.22     124 untreated
## 21 0.56     144 untreated
## 22 0.56     158 untreated
## 23 1.10     160 untreated

Lo mismo ocurre con los nombres de un vector, aunque en este caso, la función correspondiente es names:

z <- table(mi.Puromycin$Especie)
names(z)
##  [1] "47"  "51"  "67"  "76"  "84"  "86"  "97"  "98"  "107" "115" "123" "124"
## [13] "131" "139" "144" "152" "158" "159" "160" "191" "200" "201" "207"
names(z)[1] <- "A"
names(z)
##  [1] "A"   "51"  "67"  "76"  "84"  "86"  "97"  "98"  "107" "115" "123" "124"
## [13] "131" "139" "144" "152" "158" "159" "160" "191" "200" "201" "207"

Frecuentemente se quiere muestrear un vector, es decir, obtener una serie de elementos al azar dentro de dicho vector. Para ello se utiliza la función sample:

sample(x, 4)
## [1]  5 27 25 18
sample(x, 100, replace = TRUE) # manera correcta
##   [1] 25 11 17 19 23  5 30 15 27 16 24  9 30 12 19 13 19 30  5  6 20  7  1  3  6
##  [26] 27  6 13 15 12 28 11  7  7  8 26 20 25  9 13 17 16 26 15 24 12 16  6  3  9
##  [51] 13 18  8 22 17 11 17 15 15  4  2 29 26  6  3 16 20 18 26 13  3 19  9 15 28
##  [76]  1 24 20  8 25 26  5 15 30  1 17  7  4 15 21  4 22 20 23 30 19  6  3  2 11

La función sample trata el vector como una urna y a sus elementos como bolas contenidas en ella que va extrayendo al azar. Obviamente, es incapaz de extraer más elementos de los que contiene la urna. Pero existe el la opción de que el muestreo se realice con reemplazamiento, i.e., de modo que cada vez que sample extraiga una bola, la reintroduzca en la urna.

El muestreo de vectores es fundamental en diversos ámbitos.

sample(x, 100) # ¡falla!

2.1.4 Orden

Existen tres funciones fundamentales relacionadas con la ordenación de vectores: order, sort y rank. sort ordena los elementos de un vector, i.e., crea una copia de dicho vector con sus elementos ordenados.

x <- c(4, 5, 3, 2, 1, 2)
sort(x)
## [1] 1 2 2 3 4 5

La función order, que ya vimos cuando ordenamos tablas, es tal que sort(x) es lo mismo que x[order(x)]. Es decir, devuelve los índices de los elementos del vector de menor a mayor:

x
## [1] 4 5 3 2 1 2
order(x)
## [1] 5 4 6 3 1 2
x[order(x)]
## [1] 1 2 2 3 4 5

El código anterior muestra cómo para ordernar x hay que tomar primero el elemento quinto elemento de x; luego, el cuarto; después, el sexto, etc. La función rank indica la posición de los elementos de un vector: el primero, el segundo, etc.

rank(x)
## [1] 5.0 6.0 4.0 2.5 1.0 2.5
rank(x, ties = "first")
## [1] 5 6 4 2 1 3

Si x contuviese los tiempos de los velocistas en los 100 metros lisos, rank(x) nos indicaría quién es el primero en llegar a la meta, quién es el segundo, etc.

rank(x) es una transformación no lineal de x que puede ser útil para normalizar datos en algunos contextos.

2.1.5 Operaciones matemáticas y vectorización

R puede ser usado como una calculadora:

2+2
## [1] 4
x <- 4*(3+5)^2
x / 10
## [1] 25.6

En R se puede operar sobre vectores igual que se opera sobre números. De hecho, en R, un número es un vector numérico de longitud 1:

c(length(2), length(x))
## [1] 1 1

Así que se pueden hacer cosas tales como

x <- 1:10
2*x
##  [1]  2  4  6  8 10 12 14 16 18 20
2*x + 1
##  [1]  3  5  7  9 11 13 15 17 19 21
x^2
##  [1]   1   4   9  16  25  36  49  64  81 100
x*x
##  [1]   1   4   9  16  25  36  49  64  81 100

Operaciones como las anteriores están vectorizadas, i.e., admiten un vector como argumento y operan sobre cada uno de los elementos. Generalmente, las operaciones vectorizadas son muy rápidas en R. Muchos problemas de rendimiento en R se resuelven, de hecho, utilizando versiones vectorizadas del código ineficiente.

La operación a la que se refiere el ejercicio anterior se denomina reciclado de vectores. Cuando se opera con dos vectores (por ejemplo, para multiplicarlos) con longitudes distintas, el más corto se recicla (es decir, se repite) tantas veces como sea necesario hasta alcanzar la longitud del más largo. Si la longitud del más corto no divide exactamente la del más largo (p.e., uno tiene longitud 10 y otro, longitud 3), R recorta la parte reciclada sobrante y lanza un warning. El lector está invitado a consultar cómo construir con R una calculadora de hipotecas, que ilustra el uso de la vectorización en un problema menos trivial que los anteriores, en el capítulo dedicado a ejemplos de uso.

3 Tareas

Tarea 1.1.1

Crea el vector que numera las filas de iris (es decir, que contenga los números del 1 hasta el número de filas de iris). Vamos a desplegar los primeros 5 registros del dataFrame iris

iris$datos<-1:nrow(iris)
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species datos
## 1          5.1         3.5          1.4         0.2  setosa     1
## 2          4.9         3.0          1.4         0.2  setosa     2
## 3          4.7         3.2          1.3         0.2  setosa     3
## 4          4.6         3.1          1.5         0.2  setosa     4
## 5          5.0         3.6          1.4         0.2  setosa     5
## 6          5.4         3.9          1.7         0.4  setosa     6

Tarea 1.1.2

Crea el patrón 1, 1.1, 1.2,…, 2. Existen varias maneras de hacerlo. Una de ellas es utilizar el argumento by de seq.

seq(1, 2, 0.1)
##  [1] 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0

Tarea 1.1.3

Selecciona las columnas 1, 2 y 5 de iris

library(tidyverse)


head(iris,5)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species datos
## 1          5.1         3.5          1.4         0.2  setosa     1
## 2          4.9         3.0          1.4         0.2  setosa     2
## 3          4.7         3.2          1.3         0.2  setosa     3
## 4          4.6         3.1          1.5         0.2  setosa     4
## 5          5.0         3.6          1.4         0.2  setosa     5
library(tidyverse)
#rm(iris)


iris %>% dplyr::select(Sepal.Length,Sepal.Width,Species)
##     Sepal.Length Sepal.Width    Species
## 1            5.1         3.5     setosa
## 2            4.9         3.0     setosa
## 3            4.7         3.2     setosa
## 4            4.6         3.1     setosa
## 5            5.0         3.6     setosa
## 6            5.4         3.9     setosa
## 7            4.6         3.4     setosa
## 8            5.0         3.4     setosa
## 9            4.4         2.9     setosa
## 10           4.9         3.1     setosa
## 11           5.4         3.7     setosa
## 12           4.8         3.4     setosa
## 13           4.8         3.0     setosa
## 14           4.3         3.0     setosa
## 15           5.8         4.0     setosa
## 16           5.7         4.4     setosa
## 17           5.4         3.9     setosa
## 18           5.1         3.5     setosa
## 19           5.7         3.8     setosa
## 20           5.1         3.8     setosa
## 21           5.4         3.4     setosa
## 22           5.1         3.7     setosa
## 23           4.6         3.6     setosa
## 24           5.1         3.3     setosa
## 25           4.8         3.4     setosa
## 26           5.0         3.0     setosa
## 27           5.0         3.4     setosa
## 28           5.2         3.5     setosa
## 29           5.2         3.4     setosa
## 30           4.7         3.2     setosa
## 31           4.8         3.1     setosa
## 32           5.4         3.4     setosa
## 33           5.2         4.1     setosa
## 34           5.5         4.2     setosa
## 35           4.9         3.1     setosa
## 36           5.0         3.2     setosa
## 37           5.5         3.5     setosa
## 38           4.9         3.6     setosa
## 39           4.4         3.0     setosa
## 40           5.1         3.4     setosa
## 41           5.0         3.5     setosa
## 42           4.5         2.3     setosa
## 43           4.4         3.2     setosa
## 44           5.0         3.5     setosa
## 45           5.1         3.8     setosa
## 46           4.8         3.0     setosa
## 47           5.1         3.8     setosa
## 48           4.6         3.2     setosa
## 49           5.3         3.7     setosa
## 50           5.0         3.3     setosa
## 51           7.0         3.2 versicolor
## 52           6.4         3.2 versicolor
## 53           6.9         3.1 versicolor
## 54           5.5         2.3 versicolor
## 55           6.5         2.8 versicolor
## 56           5.7         2.8 versicolor
## 57           6.3         3.3 versicolor
## 58           4.9         2.4 versicolor
## 59           6.6         2.9 versicolor
## 60           5.2         2.7 versicolor
## 61           5.0         2.0 versicolor
## 62           5.9         3.0 versicolor
## 63           6.0         2.2 versicolor
## 64           6.1         2.9 versicolor
## 65           5.6         2.9 versicolor
## 66           6.7         3.1 versicolor
## 67           5.6         3.0 versicolor
## 68           5.8         2.7 versicolor
## 69           6.2         2.2 versicolor
## 70           5.6         2.5 versicolor
## 71           5.9         3.2 versicolor
## 72           6.1         2.8 versicolor
## 73           6.3         2.5 versicolor
## 74           6.1         2.8 versicolor
## 75           6.4         2.9 versicolor
## 76           6.6         3.0 versicolor
## 77           6.8         2.8 versicolor
## 78           6.7         3.0 versicolor
## 79           6.0         2.9 versicolor
## 80           5.7         2.6 versicolor
## 81           5.5         2.4 versicolor
## 82           5.5         2.4 versicolor
## 83           5.8         2.7 versicolor
## 84           6.0         2.7 versicolor
## 85           5.4         3.0 versicolor
## 86           6.0         3.4 versicolor
## 87           6.7         3.1 versicolor
## 88           6.3         2.3 versicolor
## 89           5.6         3.0 versicolor
## 90           5.5         2.5 versicolor
## 91           5.5         2.6 versicolor
## 92           6.1         3.0 versicolor
## 93           5.8         2.6 versicolor
## 94           5.0         2.3 versicolor
## 95           5.6         2.7 versicolor
## 96           5.7         3.0 versicolor
## 97           5.7         2.9 versicolor
## 98           6.2         2.9 versicolor
## 99           5.1         2.5 versicolor
## 100          5.7         2.8 versicolor
## 101          6.3         3.3  virginica
## 102          5.8         2.7  virginica
## 103          7.1         3.0  virginica
## 104          6.3         2.9  virginica
## 105          6.5         3.0  virginica
## 106          7.6         3.0  virginica
## 107          4.9         2.5  virginica
## 108          7.3         2.9  virginica
## 109          6.7         2.5  virginica
## 110          7.2         3.6  virginica
## 111          6.5         3.2  virginica
## 112          6.4         2.7  virginica
## 113          6.8         3.0  virginica
## 114          5.7         2.5  virginica
## 115          5.8         2.8  virginica
## 116          6.4         3.2  virginica
## 117          6.5         3.0  virginica
## 118          7.7         3.8  virginica
## 119          7.7         2.6  virginica
## 120          6.0         2.2  virginica
## 121          6.9         3.2  virginica
## 122          5.6         2.8  virginica
## 123          7.7         2.8  virginica
## 124          6.3         2.7  virginica
## 125          6.7         3.3  virginica
## 126          7.2         3.2  virginica
## 127          6.2         2.8  virginica
## 128          6.1         3.0  virginica
## 129          6.4         2.8  virginica
## 130          7.2         3.0  virginica
## 131          7.4         2.8  virginica
## 132          7.9         3.8  virginica
## 133          6.4         2.8  virginica
## 134          6.3         2.8  virginica
## 135          6.1         2.6  virginica
## 136          7.7         3.0  virginica
## 137          6.3         3.4  virginica
## 138          6.4         3.1  virginica
## 139          6.0         3.0  virginica
## 140          6.9         3.1  virginica
## 141          6.7         3.1  virginica
## 142          6.9         3.1  virginica
## 143          5.8         2.7  virginica
## 144          6.8         3.2  virginica
## 145          6.7         3.3  virginica
## 146          6.7         3.0  virginica
## 147          6.3         2.5  virginica
## 148          6.5         3.0  virginica
## 149          6.2         3.4  virginica
## 150          5.9         3.0  virginica
head(iris,5)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species datos
## 1          5.1         3.5          1.4         0.2  setosa     1
## 2          4.9         3.0          1.4         0.2  setosa     2
## 3          4.7         3.2          1.3         0.2  setosa     3
## 4          4.6         3.1          1.5         0.2  setosa     4
## 5          5.0         3.6          1.4         0.2  setosa     5
iris %>% dplyr::select(1,2,5)
##     Sepal.Length Sepal.Width    Species
## 1            5.1         3.5     setosa
## 2            4.9         3.0     setosa
## 3            4.7         3.2     setosa
## 4            4.6         3.1     setosa
## 5            5.0         3.6     setosa
## 6            5.4         3.9     setosa
## 7            4.6         3.4     setosa
## 8            5.0         3.4     setosa
## 9            4.4         2.9     setosa
## 10           4.9         3.1     setosa
## 11           5.4         3.7     setosa
## 12           4.8         3.4     setosa
## 13           4.8         3.0     setosa
## 14           4.3         3.0     setosa
## 15           5.8         4.0     setosa
## 16           5.7         4.4     setosa
## 17           5.4         3.9     setosa
## 18           5.1         3.5     setosa
## 19           5.7         3.8     setosa
## 20           5.1         3.8     setosa
## 21           5.4         3.4     setosa
## 22           5.1         3.7     setosa
## 23           4.6         3.6     setosa
## 24           5.1         3.3     setosa
## 25           4.8         3.4     setosa
## 26           5.0         3.0     setosa
## 27           5.0         3.4     setosa
## 28           5.2         3.5     setosa
## 29           5.2         3.4     setosa
## 30           4.7         3.2     setosa
## 31           4.8         3.1     setosa
## 32           5.4         3.4     setosa
## 33           5.2         4.1     setosa
## 34           5.5         4.2     setosa
## 35           4.9         3.1     setosa
## 36           5.0         3.2     setosa
## 37           5.5         3.5     setosa
## 38           4.9         3.6     setosa
## 39           4.4         3.0     setosa
## 40           5.1         3.4     setosa
## 41           5.0         3.5     setosa
## 42           4.5         2.3     setosa
## 43           4.4         3.2     setosa
## 44           5.0         3.5     setosa
## 45           5.1         3.8     setosa
## 46           4.8         3.0     setosa
## 47           5.1         3.8     setosa
## 48           4.6         3.2     setosa
## 49           5.3         3.7     setosa
## 50           5.0         3.3     setosa
## 51           7.0         3.2 versicolor
## 52           6.4         3.2 versicolor
## 53           6.9         3.1 versicolor
## 54           5.5         2.3 versicolor
## 55           6.5         2.8 versicolor
## 56           5.7         2.8 versicolor
## 57           6.3         3.3 versicolor
## 58           4.9         2.4 versicolor
## 59           6.6         2.9 versicolor
## 60           5.2         2.7 versicolor
## 61           5.0         2.0 versicolor
## 62           5.9         3.0 versicolor
## 63           6.0         2.2 versicolor
## 64           6.1         2.9 versicolor
## 65           5.6         2.9 versicolor
## 66           6.7         3.1 versicolor
## 67           5.6         3.0 versicolor
## 68           5.8         2.7 versicolor
## 69           6.2         2.2 versicolor
## 70           5.6         2.5 versicolor
## 71           5.9         3.2 versicolor
## 72           6.1         2.8 versicolor
## 73           6.3         2.5 versicolor
## 74           6.1         2.8 versicolor
## 75           6.4         2.9 versicolor
## 76           6.6         3.0 versicolor
## 77           6.8         2.8 versicolor
## 78           6.7         3.0 versicolor
## 79           6.0         2.9 versicolor
## 80           5.7         2.6 versicolor
## 81           5.5         2.4 versicolor
## 82           5.5         2.4 versicolor
## 83           5.8         2.7 versicolor
## 84           6.0         2.7 versicolor
## 85           5.4         3.0 versicolor
## 86           6.0         3.4 versicolor
## 87           6.7         3.1 versicolor
## 88           6.3         2.3 versicolor
## 89           5.6         3.0 versicolor
## 90           5.5         2.5 versicolor
## 91           5.5         2.6 versicolor
## 92           6.1         3.0 versicolor
## 93           5.8         2.6 versicolor
## 94           5.0         2.3 versicolor
## 95           5.6         2.7 versicolor
## 96           5.7         3.0 versicolor
## 97           5.7         2.9 versicolor
## 98           6.2         2.9 versicolor
## 99           5.1         2.5 versicolor
## 100          5.7         2.8 versicolor
## 101          6.3         3.3  virginica
## 102          5.8         2.7  virginica
## 103          7.1         3.0  virginica
## 104          6.3         2.9  virginica
## 105          6.5         3.0  virginica
## 106          7.6         3.0  virginica
## 107          4.9         2.5  virginica
## 108          7.3         2.9  virginica
## 109          6.7         2.5  virginica
## 110          7.2         3.6  virginica
## 111          6.5         3.2  virginica
## 112          6.4         2.7  virginica
## 113          6.8         3.0  virginica
## 114          5.7         2.5  virginica
## 115          5.8         2.8  virginica
## 116          6.4         3.2  virginica
## 117          6.5         3.0  virginica
## 118          7.7         3.8  virginica
## 119          7.7         2.6  virginica
## 120          6.0         2.2  virginica
## 121          6.9         3.2  virginica
## 122          5.6         2.8  virginica
## 123          7.7         2.8  virginica
## 124          6.3         2.7  virginica
## 125          6.7         3.3  virginica
## 126          7.2         3.2  virginica
## 127          6.2         2.8  virginica
## 128          6.1         3.0  virginica
## 129          6.4         2.8  virginica
## 130          7.2         3.0  virginica
## 131          7.4         2.8  virginica
## 132          7.9         3.8  virginica
## 133          6.4         2.8  virginica
## 134          6.3         2.8  virginica
## 135          6.1         2.6  virginica
## 136          7.7         3.0  virginica
## 137          6.3         3.4  virginica
## 138          6.4         3.1  virginica
## 139          6.0         3.0  virginica
## 140          6.9         3.1  virginica
## 141          6.7         3.1  virginica
## 142          6.9         3.1  virginica
## 143          5.8         2.7  virginica
## 144          6.8         3.2  virginica
## 145          6.7         3.3  virginica
## 146          6.7         3.0  virginica
## 147          6.3         2.5  virginica
## 148          6.5         3.0  virginica
## 149          6.2         3.4  virginica
## 150          5.9         3.0  virginica
head(iris,5)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species datos
## 1          5.1         3.5          1.4         0.2  setosa     1
## 2          4.9         3.0          1.4         0.2  setosa     2
## 3          4.7         3.2          1.3         0.2  setosa     3
## 4          4.6         3.1          1.5         0.2  setosa     4
## 5          5.0         3.6          1.4         0.2  setosa     5

Tarea 1.1.4

Selecciona las filas 1:4 y 100:104 de iris.

rm(iris)

iris[c(1:4,100:104),] 
##     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
## 100          5.7         2.8          4.1         1.3 versicolor
## 101          6.3         3.3          6.0         2.5  virginica
## 102          5.8         2.7          5.1         1.9  virginica
## 103          7.1         3.0          5.9         2.1  virginica
## 104          6.3         2.9          5.6         1.8  virginica
head(iris,5)
##   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

Tarea 1.1.5

Usa un vector de texto para seleccionar las columnas Wind y Temp de airquality.

airquality
##     Ozone Solar.R Wind Temp Month Day
## 1      41     190  7.4   67     5   1
## 2      36     118  8.0   72     5   2
## 3      12     149 12.6   74     5   3
## 4      18     313 11.5   62     5   4
## 5      NA      NA 14.3   56     5   5
## 6      28      NA 14.9   66     5   6
## 7      23     299  8.6   65     5   7
## 8      19      99 13.8   59     5   8
## 9       8      19 20.1   61     5   9
## 10     NA     194  8.6   69     5  10
## 11      7      NA  6.9   74     5  11
## 12     16     256  9.7   69     5  12
## 13     11     290  9.2   66     5  13
## 14     14     274 10.9   68     5  14
## 15     18      65 13.2   58     5  15
## 16     14     334 11.5   64     5  16
## 17     34     307 12.0   66     5  17
## 18      6      78 18.4   57     5  18
## 19     30     322 11.5   68     5  19
## 20     11      44  9.7   62     5  20
## 21      1       8  9.7   59     5  21
## 22     11     320 16.6   73     5  22
## 23      4      25  9.7   61     5  23
## 24     32      92 12.0   61     5  24
## 25     NA      66 16.6   57     5  25
## 26     NA     266 14.9   58     5  26
## 27     NA      NA  8.0   57     5  27
## 28     23      13 12.0   67     5  28
## 29     45     252 14.9   81     5  29
## 30    115     223  5.7   79     5  30
## 31     37     279  7.4   76     5  31
## 32     NA     286  8.6   78     6   1
## 33     NA     287  9.7   74     6   2
## 34     NA     242 16.1   67     6   3
## 35     NA     186  9.2   84     6   4
## 36     NA     220  8.6   85     6   5
## 37     NA     264 14.3   79     6   6
## 38     29     127  9.7   82     6   7
## 39     NA     273  6.9   87     6   8
## 40     71     291 13.8   90     6   9
## 41     39     323 11.5   87     6  10
## 42     NA     259 10.9   93     6  11
## 43     NA     250  9.2   92     6  12
## 44     23     148  8.0   82     6  13
## 45     NA     332 13.8   80     6  14
## 46     NA     322 11.5   79     6  15
## 47     21     191 14.9   77     6  16
## 48     37     284 20.7   72     6  17
## 49     20      37  9.2   65     6  18
## 50     12     120 11.5   73     6  19
## 51     13     137 10.3   76     6  20
## 52     NA     150  6.3   77     6  21
## 53     NA      59  1.7   76     6  22
## 54     NA      91  4.6   76     6  23
## 55     NA     250  6.3   76     6  24
## 56     NA     135  8.0   75     6  25
## 57     NA     127  8.0   78     6  26
## 58     NA      47 10.3   73     6  27
## 59     NA      98 11.5   80     6  28
## 60     NA      31 14.9   77     6  29
## 61     NA     138  8.0   83     6  30
## 62    135     269  4.1   84     7   1
## 63     49     248  9.2   85     7   2
## 64     32     236  9.2   81     7   3
## 65     NA     101 10.9   84     7   4
## 66     64     175  4.6   83     7   5
## 67     40     314 10.9   83     7   6
## 68     77     276  5.1   88     7   7
## 69     97     267  6.3   92     7   8
## 70     97     272  5.7   92     7   9
## 71     85     175  7.4   89     7  10
## 72     NA     139  8.6   82     7  11
## 73     10     264 14.3   73     7  12
## 74     27     175 14.9   81     7  13
## 75     NA     291 14.9   91     7  14
## 76      7      48 14.3   80     7  15
## 77     48     260  6.9   81     7  16
## 78     35     274 10.3   82     7  17
## 79     61     285  6.3   84     7  18
## 80     79     187  5.1   87     7  19
## 81     63     220 11.5   85     7  20
## 82     16       7  6.9   74     7  21
## 83     NA     258  9.7   81     7  22
## 84     NA     295 11.5   82     7  23
## 85     80     294  8.6   86     7  24
## 86    108     223  8.0   85     7  25
## 87     20      81  8.6   82     7  26
## 88     52      82 12.0   86     7  27
## 89     82     213  7.4   88     7  28
## 90     50     275  7.4   86     7  29
## 91     64     253  7.4   83     7  30
## 92     59     254  9.2   81     7  31
## 93     39      83  6.9   81     8   1
## 94      9      24 13.8   81     8   2
## 95     16      77  7.4   82     8   3
## 96     78      NA  6.9   86     8   4
## 97     35      NA  7.4   85     8   5
## 98     66      NA  4.6   87     8   6
## 99    122     255  4.0   89     8   7
## 100    89     229 10.3   90     8   8
## 101   110     207  8.0   90     8   9
## 102    NA     222  8.6   92     8  10
## 103    NA     137 11.5   86     8  11
## 104    44     192 11.5   86     8  12
## 105    28     273 11.5   82     8  13
## 106    65     157  9.7   80     8  14
## 107    NA      64 11.5   79     8  15
## 108    22      71 10.3   77     8  16
## 109    59      51  6.3   79     8  17
## 110    23     115  7.4   76     8  18
## 111    31     244 10.9   78     8  19
## 112    44     190 10.3   78     8  20
## 113    21     259 15.5   77     8  21
## 114     9      36 14.3   72     8  22
## 115    NA     255 12.6   75     8  23
## 116    45     212  9.7   79     8  24
## 117   168     238  3.4   81     8  25
## 118    73     215  8.0   86     8  26
## 119    NA     153  5.7   88     8  27
## 120    76     203  9.7   97     8  28
## 121   118     225  2.3   94     8  29
## 122    84     237  6.3   96     8  30
## 123    85     188  6.3   94     8  31
## 124    96     167  6.9   91     9   1
## 125    78     197  5.1   92     9   2
## 126    73     183  2.8   93     9   3
## 127    91     189  4.6   93     9   4
## 128    47      95  7.4   87     9   5
## 129    32      92 15.5   84     9   6
## 130    20     252 10.9   80     9   7
## 131    23     220 10.3   78     9   8
## 132    21     230 10.9   75     9   9
## 133    24     259  9.7   73     9  10
## 134    44     236 14.9   81     9  11
## 135    21     259 15.5   76     9  12
## 136    28     238  6.3   77     9  13
## 137     9      24 10.9   71     9  14
## 138    13     112 11.5   71     9  15
## 139    46     237  6.9   78     9  16
## 140    18     224 13.8   67     9  17
## 141    13      27 10.3   76     9  18
## 142    24     238 10.3   68     9  19
## 143    16     201  8.0   82     9  20
## 144    13     238 12.6   64     9  21
## 145    23      14  9.2   71     9  22
## 146    36     139 10.3   81     9  23
## 147     7      49 10.3   69     9  24
## 148    14      20 16.6   63     9  25
## 149    30     193  6.9   70     9  26
## 150    NA     145 13.2   77     9  27
## 151    14     191 14.3   75     9  28
## 152    18     131  8.0   76     9  29
## 153    20     223 11.5   68     9  30
fff<-airquality %>% dplyr::select(3,4)
tmp <- sapply(fff, as.character)
head(tmp,5)
##      Wind   Temp
## [1,] "7.4"  "67"
## [2,] "8"    "72"
## [3,] "12.6" "74"
## [4,] "11.5" "62"
## [5,] "14.3" "56"

Tarea 1.1.6

Crea una tabla que sea la primera fila de iris repetida 100 veces.

Respuesta a la pregunta numero 1.1.6
** iris %>% slice(rep(1, each =18)) **

rm(iris)
## Warning in rm(iris): objeto 'iris' no encontrado
library(dplyr)
iris %>% slice(rep(1, each =18))
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           5.1         3.5          1.4         0.2  setosa
## 3           5.1         3.5          1.4         0.2  setosa
## 4           5.1         3.5          1.4         0.2  setosa
## 5           5.1         3.5          1.4         0.2  setosa
## 6           5.1         3.5          1.4         0.2  setosa
## 7           5.1         3.5          1.4         0.2  setosa
## 8           5.1         3.5          1.4         0.2  setosa
## 9           5.1         3.5          1.4         0.2  setosa
## 10          5.1         3.5          1.4         0.2  setosa
## 11          5.1         3.5          1.4         0.2  setosa
## 12          5.1         3.5          1.4         0.2  setosa
## 13          5.1         3.5          1.4         0.2  setosa
## 14          5.1         3.5          1.4         0.2  setosa
## 15          5.1         3.5          1.4         0.2  setosa
## 16          5.1         3.5          1.4         0.2  setosa
## 17          5.1         3.5          1.4         0.2  setosa
## 18          5.1         3.5          1.4         0.2  setosa
head(iris,5)
##   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

Tarea 1.1.7

En CO2, cuenta cuántas filas corresponden a cada tipo de planta.

head(CO2)
## Grouped Data: uptake ~ conc | Plant
##   Plant   Type  Treatment conc uptake
## 1   Qn1 Quebec nonchilled   95   16.0
## 2   Qn1 Quebec nonchilled  175   30.4
## 3   Qn1 Quebec nonchilled  250   34.8
## 4   Qn1 Quebec nonchilled  350   37.2
## 5   Qn1 Quebec nonchilled  500   35.3
## 6   Qn1 Quebec nonchilled  675   39.2

Respuesta a la pregunta numero 1.1.7
CO2 %>% count(Plant,sort = TRUE)

CO2 %>% dplyr::count(Plant,sort = T)
## Grouped Data: uptake ~ conc | Plant
##    Plant n
## 1    Qn1 7
## 2    Qn2 7
## 3    Qn3 7
## 4    Qc1 7
## 5    Qc3 7
## 6    Qc2 7
## 7    Mn3 7
## 8    Mn2 7
## 9    Mn1 7
## 10   Mc2 7
## 11   Mc3 7
## 12   Mc1 7
CO2
## Grouped Data: uptake ~ conc | Plant
##    Plant        Type  Treatment conc uptake
## 1    Qn1      Quebec nonchilled   95   16.0
## 2    Qn1      Quebec nonchilled  175   30.4
## 3    Qn1      Quebec nonchilled  250   34.8
## 4    Qn1      Quebec nonchilled  350   37.2
## 5    Qn1      Quebec nonchilled  500   35.3
## 6    Qn1      Quebec nonchilled  675   39.2
## 7    Qn1      Quebec nonchilled 1000   39.7
## 8    Qn2      Quebec nonchilled   95   13.6
## 9    Qn2      Quebec nonchilled  175   27.3
## 10   Qn2      Quebec nonchilled  250   37.1
## 11   Qn2      Quebec nonchilled  350   41.8
## 12   Qn2      Quebec nonchilled  500   40.6
## 13   Qn2      Quebec nonchilled  675   41.4
## 14   Qn2      Quebec nonchilled 1000   44.3
## 15   Qn3      Quebec nonchilled   95   16.2
## 16   Qn3      Quebec nonchilled  175   32.4
## 17   Qn3      Quebec nonchilled  250   40.3
## 18   Qn3      Quebec nonchilled  350   42.1
## 19   Qn3      Quebec nonchilled  500   42.9
## 20   Qn3      Quebec nonchilled  675   43.9
## 21   Qn3      Quebec nonchilled 1000   45.5
## 22   Qc1      Quebec    chilled   95   14.2
## 23   Qc1      Quebec    chilled  175   24.1
## 24   Qc1      Quebec    chilled  250   30.3
## 25   Qc1      Quebec    chilled  350   34.6
## 26   Qc1      Quebec    chilled  500   32.5
## 27   Qc1      Quebec    chilled  675   35.4
## 28   Qc1      Quebec    chilled 1000   38.7
## 29   Qc2      Quebec    chilled   95    9.3
## 30   Qc2      Quebec    chilled  175   27.3
## 31   Qc2      Quebec    chilled  250   35.0
## 32   Qc2      Quebec    chilled  350   38.8
## 33   Qc2      Quebec    chilled  500   38.6
## 34   Qc2      Quebec    chilled  675   37.5
## 35   Qc2      Quebec    chilled 1000   42.4
## 36   Qc3      Quebec    chilled   95   15.1
## 37   Qc3      Quebec    chilled  175   21.0
## 38   Qc3      Quebec    chilled  250   38.1
## 39   Qc3      Quebec    chilled  350   34.0
## 40   Qc3      Quebec    chilled  500   38.9
## 41   Qc3      Quebec    chilled  675   39.6
## 42   Qc3      Quebec    chilled 1000   41.4
## 43   Mn1 Mississippi nonchilled   95   10.6
## 44   Mn1 Mississippi nonchilled  175   19.2
## 45   Mn1 Mississippi nonchilled  250   26.2
## 46   Mn1 Mississippi nonchilled  350   30.0
## 47   Mn1 Mississippi nonchilled  500   30.9
## 48   Mn1 Mississippi nonchilled  675   32.4
## 49   Mn1 Mississippi nonchilled 1000   35.5
## 50   Mn2 Mississippi nonchilled   95   12.0
## 51   Mn2 Mississippi nonchilled  175   22.0
## 52   Mn2 Mississippi nonchilled  250   30.6
## 53   Mn2 Mississippi nonchilled  350   31.8
## 54   Mn2 Mississippi nonchilled  500   32.4
## 55   Mn2 Mississippi nonchilled  675   31.1
## 56   Mn2 Mississippi nonchilled 1000   31.5
## 57   Mn3 Mississippi nonchilled   95   11.3
## 58   Mn3 Mississippi nonchilled  175   19.4
## 59   Mn3 Mississippi nonchilled  250   25.8
## 60   Mn3 Mississippi nonchilled  350   27.9
## 61   Mn3 Mississippi nonchilled  500   28.5
## 62   Mn3 Mississippi nonchilled  675   28.1
## 63   Mn3 Mississippi nonchilled 1000   27.8
## 64   Mc1 Mississippi    chilled   95   10.5
## 65   Mc1 Mississippi    chilled  175   14.9
## 66   Mc1 Mississippi    chilled  250   18.1
## 67   Mc1 Mississippi    chilled  350   18.9
## 68   Mc1 Mississippi    chilled  500   19.5
## 69   Mc1 Mississippi    chilled  675   22.2
## 70   Mc1 Mississippi    chilled 1000   21.9
## 71   Mc2 Mississippi    chilled   95    7.7
## 72   Mc2 Mississippi    chilled  175   11.4
## 73   Mc2 Mississippi    chilled  250   12.3
## 74   Mc2 Mississippi    chilled  350   13.0
## 75   Mc2 Mississippi    chilled  500   12.5
## 76   Mc2 Mississippi    chilled  675   13.7
## 77   Mc2 Mississippi    chilled 1000   14.4
## 78   Mc3 Mississippi    chilled   95   10.6
## 79   Mc3 Mississippi    chilled  175   18.0
## 80   Mc3 Mississippi    chilled  250   17.9
## 81   Mc3 Mississippi    chilled  350   17.9
## 82   Mc3 Mississippi    chilled  500   17.9
## 83   Mc3 Mississippi    chilled  675   18.9
## 84   Mc3 Mississippi    chilled 1000   19.9

Tarea 1.1.8

Ejecuta e interpreta table(CO2$conc).

table(CO2$conc)
## 
##   95  175  250  350  500  675 1000 
##   12   12   12   12   12   12   12

table suele ser esencial para organizar y resumir los datos, especialmente cuando se trabaja con variables categóricas. Al crear un elemento con table en R, se crea un tipo específico de objeto llamado table, que es muy similar a un DataFrame.

La funcion table cuenta la cantidad de veces que aparece una categoría de respuesta en una columna de un dataFrame

3.1 Ahora realizaremos el mismo para otro dataFrame

Descripción

Se realizó un experimento para medir y comparar la efectividad de varios suplementos alimenticios en la tasa de crecimiento de los pollos.

Argumentos Formato

Un marco de datos con 71 observaciones sobre las siguientes 2 variables.

peso:
una variable numérica que da el peso del pollito.
alimentación: un factor que da el tipo de alimento.

Detalles

Los pollitos recién nacidos se asignaron al azar en seis grupos, y cada grupo recibió un suplemento alimenticio diferente. Sus pesos en gramos después de seis semanas se dan junto con los tipos de alimento.

chickwts
##    weight      feed
## 1     179 horsebean
## 2     160 horsebean
## 3     136 horsebean
## 4     227 horsebean
## 5     217 horsebean
## 6     168 horsebean
## 7     108 horsebean
## 8     124 horsebean
## 9     143 horsebean
## 10    140 horsebean
## 11    309   linseed
## 12    229   linseed
## 13    181   linseed
## 14    141   linseed
## 15    260   linseed
## 16    203   linseed
## 17    148   linseed
## 18    169   linseed
## 19    213   linseed
## 20    257   linseed
## 21    244   linseed
## 22    271   linseed
## 23    243   soybean
## 24    230   soybean
## 25    248   soybean
## 26    327   soybean
## 27    329   soybean
## 28    250   soybean
## 29    193   soybean
## 30    271   soybean
## 31    316   soybean
## 32    267   soybean
## 33    199   soybean
## 34    171   soybean
## 35    158   soybean
## 36    248   soybean
## 37    423 sunflower
## 38    340 sunflower
## 39    392 sunflower
## 40    339 sunflower
## 41    341 sunflower
## 42    226 sunflower
## 43    320 sunflower
## 44    295 sunflower
## 45    334 sunflower
## 46    322 sunflower
## 47    297 sunflower
## 48    318 sunflower
## 49    325  meatmeal
## 50    257  meatmeal
## 51    303  meatmeal
## 52    315  meatmeal
## 53    380  meatmeal
## 54    153  meatmeal
## 55    263  meatmeal
## 56    242  meatmeal
## 57    206  meatmeal
## 58    344  meatmeal
## 59    258  meatmeal
## 60    368    casein
## 61    390    casein
## 62    379    casein
## 63    260    casein
## 64    404    casein
## 65    318    casein
## 66    352    casein
## 67    359    casein
## 68    216    casein
## 69    222    casein
## 70    283    casein
## 71    332    casein

Tarea 1.1.9

Ejecuta e interpreta table(table(CO2$conc)).

Tarea 1.1.10

Ejecuta e interpreta table(table(CO2$conc)).

table(table(CO2$conc))
## 
## 12 
##  7

Tarea 1.1.9

Selecciona todos los elementos de un vector menos menos los dos últimos.

Tarea 1.1.10

Implementa la función diff (las diferencias entre cada valor de un vector y el que lo precede) a mano. Nota: la función diff existe en R; pruébala en caso de duda.


Tarea 1.1.11

Cambia (en una sola expresión) los nombres de las dos primeras columnas de mi.iris por su traducción al español.

Tarea 1.1.12

Muestrea iris, es decir, extrae (p.e., 30) filas al azar de dicha tabla. Pista: recuerda que ordenar era seleccionar ordenadamente; de igual manera, en una tabla, muestrear será…

Tarea 1.1.13

Parte iris en dos partes iguales (75 observaciones cada uno) con las filas elegidas al azar (¡y complementarias!).

Tarea 1.1.14

Si x contuviese el número de puntos obtenidos en la liga de fútbol por los distintos equipos, ¿cómo usarías rank para determinar cuál es el campeón?

Tarea 1.1.15

¿Qué otros tipos de ties existen? ¿Qué hacen?

Tarea 1.1.16

Comprueba que rank(x, ties = ‘first’) es equivalente a order(order(x)).

Tarea 1.1.17

Comprueba que order(order(order(x))) es equivalente a order(x).

Tarea 1.1.18

Ejecuta e interpreta tail(sort(table(CO2$uptake))). ¿Qué utilidad le ves a la expresión anterior?

Tarea 1.1.19

Comprueba que log es una función vectorizada aplicándosela a x.

Tarea 1.1.20

Calcula el valor medio de la longitud de los pétalos de iris usando mean.


Tarea 1.1.21

Repite el ejercicio anterior usando sum y length.

Si x <- 1:10 e y <- 1:2, ¿cuánto vale x * y? ¿Qué pasa si y <- 1:3?