Administración del entorno

Limpia previamente tu espacio de trabajo. Crea un archivo Markdown, desde cero, copiando el enunciado de cada ejercicio e incrustando el código R y las salidas.

  1. La función ls:
mi_var1 <-1
mi_var2 <- "dos"
mi_var3 <- "III"
# llama a ls

Indica la opción correcta: a) Lista el contenido del directorio de trabajo b) Es la abreviatura de list sort y ordena la lista de variables c) Genera código R automáticamente (function name, pos =-1…“) d) Listará todas las variables y funciones almacenadas en el entorno global (tu sesión de trabajo en R)

  1. Para crear variables ocultas, el nombre de la variable debe comenzar con un “.”.
.var_oculta <- "no me ves"
.var_oculta
## [1] "no me ves"

Utiliza la función apropiada para listar variables de tu entorno. Averigua cómo mostrar variables ocultas.

Crea un vector v_rnd con 3 elementos numéricos enteros aleatorios de 1 a 3.

v_rnd <- 

Vuelve a listar las variables ocultas y observa qué ha ocurrido. Trata de explica a qué se debe.

  1. Para poder usar ciertas librerías, es necesario tenerlas instaladas y cargarlas en nuestro script. Aunque ya se ha hecho dentro de R studio, por ejemplo para poder generar y visualizar rmarkdown, conviene tener en cuenta los comandos necesarios para instalar los paquetes, especialmente cuando se lleva un script a producción. Instala el paquete “gapminder” en tu entorno. Hazlo también en tu instalación de R de linux
install.packages()

Carga la librería gapminder en tu script

library(gapminder)
  1. Directorios en R. La función getwd() permite obtener nuestro directorio de trabajo. Comprueba tu directorio de trabajo por defecto en Windows. Si vas a trabajar con discos externos, conviene siempre establecer el entorno antes de trabajar con R. Para ello, está la función setwd(). Elige tu entorno de trabajo, seleccionando el directorio de tu disco externo, por ejemplo:
setwd("J:\\Rwd")
  1. (Extra) Crea un script .R en tu máquina linux. Comprueba el entorno de trabajo y cámbialo. ¿Qué precauciones habría que tomar si desarrollamos en Windows y subimos a producción en linux? Crea la variable de entorno en Windows “R_WD” y asígnale el directorio de trabajo. Haz lo mismo en linux. Utiliza setwd() apropiadamente tirando de la variable de entorno.
Sys.getenv()
  1. Con el comando sink(“fichero.txt”), le indicas a R que escriba la salida por fichero en lugar de por el terminal. Volviendo a llamar a sink(), sin parámetros, termina y cierra el fichero y vuelve a mostrar las salidas por el terminal. Imprime los últimos 100 comandos que escribiste en R en un fichero.

  2. Guarda el espacio de trabajo con la función save.image(“mi_espacio.RData”). Carga el espacio de trabajo en tu versión linux de R. Utiliza la función load().

Estructuras de datos

  1. Repaso Factores. Crea el factor fcalif, teniendo en cuenta el orden de los niveles indicados y las etiquetas dadas.
notas <- c(3, 0, 4, 6, 8, 10, 9, 8, 7, 7, 6, 7, 5)
calificaciones <- c("S","S","S","A","N","MH","Sb","N","N","N","A","N","A")
niveles = c("S", "A", "N", "Sb", "MH")
etiquetas = c("Suspenso", "Aprobado", "Notable", "Sobresaliente", "Matrícula de Honor")
fcalif <-
  1. Con los datos anteriores, saca el promedio de notas de los alumnos con suspenso, aprobado y notable.
#suspensos:
mean(...)
#aprobados
mean(...)
#notables
mean(...)
  1. Trabajando con data frames. Al haber cargado la librería “gapminder”, escribe el comando gapminder y podrás ver la estructura del data frame. ¿Cuántas observaciones (filas) tiene el dataset?
  1. 6
  2. 1694
  3. 1704
  4. 10
  1. Data frames de ejemplo en R. Utiliza las funciones head y tail para:
mtcars
# Imprime las 2 primeras filas

# Imprime las 10 últimas filas
  1. Utilizando una única función, analiza la estructura del dataframe mtcars e indica: Nº total de observaciones: Nº total de variables: Tipo de cada variable:

  2. Crea un data frame con la estructura de la tabla “meses” a partir de los siguientes vectores:

mesid <- 1:12
# Completa hasta los 12 meses
mesnombre <- c("Enero", "Febrero",...)
# Utiliza substr para generar los nombres de cada mes con los 3 primeros caracteres de mesnombre
mescorto <- 

mesesdf <-
  1. Crea otro data frame con las 4 columnas y la estructura de la tabla “dias_semana”
diasemanaid <- 1:7
diasemananombre <-
diasemananombrecorto <-
diasemanaletra <-

diasemanadf <-
  1. Añade al dataframe dias_semana una quinta columna con valores lógicos “esFestivo”, indica TRUE para los domingos y false para el resto. Utiliza el comparador “==” para ello.

  2. La función list() permite crear listas. A partir de los tres vectores siguientes, crea una lista

mi_vector <-1:20
mi_matriz <-matrix(1:9,ncol=3,byrow=TRUE)
mi_df <- mtcars[1:5,]
mi_lista <-
  1. A partir del vector de nombres dado, utiliza la función names() para nombrar los elementos de la lista anterior e imprime la lista
v_nombres <- c("Vec", "Mat", "Df")



mi_lista
  1. Tanto en listas como en data frames, es común referirse a la posición del elmento o a la columna respectivamente, usando el símbolo mi_lista $nombre_elemento ó mi_df$nombre_columna para acceder a los datos de los elementos o columnas. Teniendo en cuenta que tienen nombres, imprime el elemento 7º del vector “Vec” de la lista. Sustituye su valor por 77 y vuelve a imprimir la lista completa.

  2. A partir de los datos del dataframe contenido en mi_lista encuentra e imprime el valor “mpg” para el Datsun 710

  3. A partir de los datos del dataframe mi_lista, extrae, usando subset(), los vehículos con 6 cyl y 4 gear. Haz lo mismo pero imprime solamente wt y qsec. Añade el parámetro select a subset().

  4. Utilizando el dataframe, extrae 100 muestras aleatorias sin repetición. Hazo en una sola línea.

muestras_gm <- gapminder[tu_codigo,] # Utiliza sample() y nrow() para extraer las muestras

Funciones

  1. Sea \(a x^2 + b x + c = 0\) la ecuación y \(x = \frac {-b \pm \sqrt {b^2 - 4ac}}{2a}\) la solución a la misma, crea una función que reciba como parámetros a, b y c y devuelva 2 si tiene 2 soluciones reales. 1 si tiene una solución real, 0 si no tiene solución real o NA si a = 0.
ec_2grado_tipo <- funcion(a,b,c) {
  
}
ec_2grado_tipo(a=2,b=5,c=0)
ec_2grado_tipo(a=1,b=2,c=1)
ec_2grado_tipo(a=1,b=2,c=3)
ec_2grado_tipo(a=0,b=2,c=0)
  1. Escribe una función, que sirviéndose de la anterior, resuelva la ecuación en el campo de los números reales. Considera la salida un vector de 2 elementos numéricos
ec_2grado_solr <- funcion(a,b,c) {

}
ec_2grado_solr(a=2,b=5,c=0)
ec_2grado_solr(a=1,b=2,c=1)
ec_2grado_solr(a=1,b=2,c=3)
ec_2grado_solr(a=0,b=2,c=0)
  1. Cuando no tiene solución real, considera utilizar los números complejos y escribe una función que resuelva cualquier tipo de ecuación, aunque tenga solución con números complejos. R dispone de herramientas para ello. Ayuda sqrt(as.complex(-1)) Considera la salida un vector de 2 elementos numéricos o complejos.
ec_2grado <- funcion(a,b,c) {
ec_2grado(a=2,b=5,c=0)
ec_2grado(a=1,b=2,c=1)
ec_2grado(a=1,b=0,c=1)
ec_2grado(a=0,b=2,c=0)
}