### EJERCICIO 1 ###
# Leer y probar las siguientes funciones

1. Definimos nuestro vector de ejemplo

x <- c(12, 10, 25)

2. Probamos las funciones de la lista

#ls() sin argumentos, da el vector de nombres de variables definidas. ls() ### Muestra las variables definidas: “x”

#a:b crea vector de enteros consecutivos, de a a b. 1:5 ### Crea vector de enteros: 1, 2, 3, 4, 5

#c(…) da un vector con los argumentos … concatenados. c(12, 10, 25) ### Concatena los números en un vector

#length(x) da la longitud del vector argumento x. length(x) ### Longitud: 3

#sum(…) SUMa las componentes de los argumentos. sum(x) ### Suma: 12 + 10 + 25 = 47

#prod(…) PRODucto de las componentes de los argumentos. prod(x) ### Producto: 12 * 10 * 25 = 3000

#sort(x) da el vector argumento x reordenado de manera creciente. sort(x) ### Orden creciente: 10, 12, 25

#sort(x,decreasing=TRUE) lo mismo (pero decreciente). sort(x, decreasing=TRUE) ### Orden decreciente: 25, 12, 10

#min(…) da el valor MÍNimo de los argumentos. min(x) ### Mínimo: 10

#max(…) da el valor MÁXimo de los argumentos. max(x) ### Máximo: 25

#which(x) da el vector de “posiciones” donde x es TRUE. which(x > 11) ### Posiciones donde x es mayor a 11 (posiciones 1 y 3)

3. Operaciones componente por componente

y <- c(1, 2, 5) y

x + y ### Suma componente a componente: 13, 12, 30 x - y x * y ### Multiplica componente a componente: 12, 20, 125 x / y x ^ y

sqrt(x) ### Raíz cuadrada de cada uno log(x) exp(x) sin(x) abs(x)

x < 20 ### Compara cada uno x == y x > y x <= y x >= y x != y

x & y ### Operador lógico AND x | y xor(x > y, x < y) !(x > y)

### EJERCICIO 2 ###
# Realizar las siguientes sumas:

Suma de los números del 1 al 1000

sum(1:1000)

Suma de 1 + 2 + 4 + 8 + … + 1024

sum(2^(0:10))

### EJERCICIO 3 ###
# Crear un vector con 20 nombres de alumnos

alumnos <- c(“Ana”, “Luis”, “Pedro”, “María”, “José”, “Carlos”, “Andrea”, “Sofía”, “Miguel”, “Valeria”, “Daniel”, “Paula”, “Jorge”, “Fernanda”, “David”, “Camila”, “Diego”, “Lucía”, “Kevin”, “Isabel”)

1. Mostrar el vector alumnos

alumnos

2. Contar cuántos nombres tiene el vector alumnos

length(alumnos)

3. Buscar las posiciones donde los nombres contienen la letra A

which(grepl(“a”, alumnos, ignore.case = TRUE))

### EJERCICIO 4 ###
# El vector notas representa la nota de un examen, de los mismos alumnos cuyo lista se ha guardado en el vector alumnos y en el mismo orden

1. Visualizalo en pantalla

Creación del vector con las notas correctas

notas <- c(12, 9, 2, 8, 6, 6, 10, 6, 10, 18, 11, 12, 17, 14, 15, 16, 7, 18, 19, 19) notas

2. ¿Cuántas componentes tiene?

length(notas)

3. ¿Cuánto suman todas las notas?

sum(notas)

4. ¿Cuál es la media aritmética de todas las notas?

mean(notas)

5. ¿En qué posiciones están las notas mayores de 7?

which(notas>7)

6. Visualiza las notas ordenadas de menor a mayor

sort(notas)

7. Visualiza las notas ordenadas de mayor a menor

sort(notas, decreasing = TRUE)

8. ¿Cuál ha sido la nota máxima?

max(notas)

9. ¿En qué posición del vector está esa nota máxima?

which.max(notas)

### EJERCICIO 5 ###
# A partir de los vectores alumnos y notas definidos

1. Visualiza las notas de los 10 primeros alumnos

notas <- c(1,9,4,6,3,4,8,6,3,10,9,5,10,5,1,8,9,8,10,2) notas[1:10]

2. Suma las notas de los 10 primeros alumnos del vector

sum(notas[1:10])

3. ¿Cuántos alumnos hay en total?

alumnos <- c(“Maria”,“Juana”,“Juliana”,“Marco”,“Polo”,“Seis”,“Siete”,“Ocho”,“Nueve”, “JAIME”,“Once”,“Doce”,“SAYRI”,“14”,“Juana”,“16”,“17”,“18”,“Ale”,“Andrea”) length(alumnos)

4. Suma las notas de los alumnos

sum(notas)

5. Cuántos alumnos han aprobado?

aprobados <- which(notas >= 7) aprobados <- length(aprobados) aprobados

6. ¿Qué porcentaje de alumnos han aprobado?

totalalumnos <- 20 porcentaje <- (aprobados/totalalumnos)*100 cat(porcentaje, “%”)

7. ¿Cuáles han sido las notas máxima y mínima?

cat(“La nota máxima es:”,max(notas)) cat(“La nota mínima es:”,min(notas))

8. ¿De qué alumnos son la máxima y mínima notas?

f <- which(notas==10) cat(“La nota max es”,notas[f],” del alumno “,alumnos[f])

G <- which(notas==1) cat(“La nota min es”,min(notas),” de los alumnos “,alumnos[G])

9. Nota media de alumnos, teniendo en cuenta sólo a los que han aprobado.

notaprobados <- notas[notas>=7] notaprobados

promaprob <- mean(notaprobados) promaprob

### EJERCICIO 6 ###
# Utilizando la base de datos interna mtcars, llevar esta base a Power BI y realizar un Dashboard de su preferencia que conteste a una pregunta de su interés

— Preparación de datos (Iris) —

Usamos ‘iris’ que ya viene en R

datos_iris <- iris

Agregamos un identificador único (ya que no tiene nombre de vehículo)

datos_iris$id <- 1:nrow(datos_iris)

Exportamos a CSV para Power BI con configuración profesional

write.csv(datos_iris, “iris_dashboard.csv”, row.names = FALSE, fileEncoding = “UTF-8”)

— Pregunta de interés para el Dashboard —

¿Cómo se relacionan el largo y ancho del sépalo según la especie?

Gráficos sugeridos en Power BI:

1. Gráfico de dispersión (Scatter Plot): Sepal.Length (eje X) vs Sepal.Width (eje Y), leyenda por Species.

2. Gráfico de barras: Promedio de Petal.Length por Species.

3. Segmentador: Species.

message(“Archivo ‘iris_dashboard.csv’ generado correctamente.”)

### EJERCICIO 7 ###
# Lee el fichero paro.csv usando la función read.table.

1. Leer el archivo.

datos <- read.table(“paro.csv”, header = TRUE, sep = “)

2. Comprobaciones básicas para verificar la importación

Muestra las primeras 6 filas

head(datos)

Muestra las últimas 6 filas

tail(datos)

Muestra el número total de filas

nrow(datos)

Muestra un resumen estadístico de las columnas

summary(datos)

Muestra la estructura de los datos (tipos de variables, etc.)

str(datos)

### EJERCICIO 8 ###
# Repite el ejercicio anterior eliminando la opción header = TRUE.

Leer el archivo sin header

datos_sin_header <- read.table(“paro.csv”, sep = “)

Inspeccionar el resultado

head(datos_sin_header)

### EJERCICIO 9 ###
# Repite el ejercicio anterior eliminando la opción header = TRUE.

1. Leer el archivo.

datos_deniro <- read.csv(“deniro.csv”, header = TRUE, fill = TRUE)

2. Comprobaciones básicas para verificar la importación

Muestra las primeras 6 filas

head(datos_deniro)

Muestra las últimas 6 filas

tail(datos_deniro)

Muestra el número total de filas

nrow(datos_deniro)

Muestra un resumen estadístico de las columnas

summary(datos_deniro)

Muestra la estructura de los datos (tipos de variables, etc.)

str(datos_deniro)

Leer el archivo sin header

datos_sin_header <- read.table(“paro.csv”, header = FALSE, sep = “)

Inspeccionar el resultado

head(datos_sin_header)

### EJERCICIO 10 ###
# En read.table y sus derivados puedes indicar, además de ficheros disponibles en el disco duro, la URL de uno disponible en internet.

URL del archivo remoto

url_datos <- “https://datanalytics.com/uploads/datos_treemap.txt

Leer directamente desde la URL

datos_remotos <- read.table(url_datos, header = TRUE, sep = “)

Verificar que se leyó correctamente

head(datos_remotos) tail(datos_remotos) nrow(datos_remotos) summary(datos_remotos) str(datos_remotos)

### EJERCICIO 11 ###
# Consulta la ayuda de download.file para bajarte al disco duro el fichero del ejercicio anterior (EJERCICIO 4) y leerlo después.

1. Definimos la dirección de internet y el nombre que le daremos al archivo guardado

url_remota <- “https://datanalytics.com/uploads/datos_treemap.txt” nombre_local <- “datos_treemap_descargado.txt”

2. Descargamos el archivo a tu carpeta de trabajo

download.file(url = url_remota, destfile = nombre_local)

3. Ahora que el archivo ya vive en tu computadora, lo leemos como un archivo local

datos_locales <- read.table(nombre_local, header = TRUE, sep = “)

4. Verificamos que se haya guardado y leído bien

head(datos_locales)