


































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Una introducción a las funciones básicas de r para el análisis de datos, incluyendo la mediana, desviación estándar, varianza, rango, longitud, producto, cuantiles, suma acumulativa, complete.cases, duplicated, merge y na.omit. Se proporcionan ejemplos prácticos para ilustrar el uso de cada función.
Tipo: Guías, Proyectos, Investigaciones
1 / 42
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



































La funci´on aggregate() en R se utiliza para aplicar una funci´on a subconjuntos de datos definidos por una o m´as variables categ´oricas. Es especialmente ´util para resumir datos agrupados en an´alisis exploratorios o en la generaci´on de reportes.
aggregate(x, by, FUN, ...)
Supongamos que tienes un data frame con la altura de diferentes personas junto con su g´enero: 1 # Crear un data frame de ejemplo 2 datos <- data. frame ( 3 altura = c (160 , 170 , 165 , 180 , 175 , 160 , 170) , 4 genero = c ( " Mujer " , " Mujer " , " Hombre " , " Hombre " , " Hombre " , " Mujer " , " Mujer " ) 5 ) 6 7 # Calcular la media de la altura por genero 8 resultado <- aggregate ( altura ~ genero , data = datos , FUN = mean ) 9 10 print ( resultado )
El resultado ser´a:
genero altura 1 Hombre 173. 2 Mujer 165.
En R, la expresi´on valor ~ grupo es una f´ormula que se utiliza para definir relaciones entre variables dentro de una funci´on, como aggregate. Esta ex- presi´on se interpreta de la siguiente manera:
El s´ımbolo ~ (tilde) se lee como ”en funci´on de” o ”dependiendo de”. Por lo tanto, la f´ormula valor ~ grupo significa que queremos aplicar una operaci´on a la variable valor, agrupando los datos seg´un los niveles de la variable grupo. En resumen, valor ~ grupo indica que la variable valor se debe agrupar de acuerdo con los niveles de grupo, y luego aplicar la funci´on especificada a los valores de valor dentro de cada grupo.
El resultado ser´a:
mes region ventas 1 Enero Norte 100 2 Febrero Norte 150 3 Marzo Norte 200 4 Enero Sur 120 5 Febrero Sur 180 6 Marzo Sur 220
Otra aplicaci´on com´un es contar cu´antas observaciones caen en cada grupo. Para esto, puedes usar la funci´on length.
1 # otra forma de agregar una columna en un data. frame 2 3 cal <- data. frame ( Nombre = c ( " Suleika " ," Camila " ," Sandra " ) , 4 parcial1 = c (9 ,9 ,7) , 5 parcial2 = c (9 ,7 ,6) , 6 parcial3 = c (10 ,8 ,7) , 7 tareas = c (10 ,10 ,10) , 8 proyecto = c (8 ,6 ,7) ) 9 10 cal 11 12 cal _ final = ((( cal $ parcial1 + cal $ parcial2 + cal $ parcial3 ) / 3.0) * 0.7) + 13 ( cal $ tareas * 0.1) + ( cal $ proyecto * 0.2) 14 cal _ final 15 16 calificaciones $ calfinal <- cal _ final 17 18 calificaciones
1 # Como agregar una registro en un data. frame 2 3 cal <- data. frame ( Nombre = c ( " Suleika " ," Camila " ," Andrea " ) , 4 parcial1 = c (9 ,9 ,7) , 5 parcial2 = c (9 ,7 ,6) , 6 parcial3 = c (10 ,8 ,7) , 7 tareas = c (10 ,10 ,10) , 8 proyecto = c (8 ,6 ,7) ) 9 10 registronuevo = data. frame ( Nombre = " Javier " , 11 parcial1 =7 , parcial2 =8 , 12 parcial3 =9 , tareas =8 , 13 proyecto =7) 14 15 registronuevo 16 17 new = rbind ( cal , registronuevo ) 18 new
suma _ acumulativa <- cumsum ( c (3 , 5 , 1 , 8 , 7) )
Estas funciones son herramientas comunes y ´utiles para realizar an´alisis de datos y c´alculos en R.
La funci´on complete.cases en R se utiliza para identificar las filas en un data frame o matriz que no contienen valores faltantes (NA). Devuelve un vector l´ogico que indica cu´ales filas tienen datos completos (sin valores faltantes) y cu´ales no.
complete.cases(data)
complete.cases revisa cada fila en el data frame o matriz y devuelve TRUE si la fila no tiene valores faltantes (NA) y FALSE si la fila tiene uno o m´as NA. Esto es ´util para filtrar filas completas de datos cuando se trabaja con conjuntos incompletos.
df <- data. frame ( Nombre = c ( " Ana " , " Beto " , NA , " Diana " ) , Edad = c (23 , 34 , 28 , NA ) , Ciudad = c ( " Madrid " , NA , " Barcelona " , " Sevilla " ) )
completas <- complete. cases ( df ) print ( completas )
Resultado:
[1] TRUE FALSE FALSE FALSE
En este caso, s´olo la primera fila est´a completa.
Podemos usar complete.cases para filtrar las filas que no tienen valores fal- tantes:
df _ completo <- df [ complete. cases ( df ) , ] print ( df _ completo )
La funci´on sample en R se utiliza para seleccionar elementos al azar de un conjunto de datos, con o sin reemplazo. Es ´util para realizar un muestreo aleatorio de un conjunto finito de valores, como una lista de n´umeros o una secuencia de enteros.
sample(x, size, replace = FALSE, prob = NULL)
Los par´ametros de la funci´on son los siguientes:
Supongamos que queremos seleccionar 5 n´umeros aleatorios del conjunto de enteros del 1 al 10:
set.seed(123) # Para reproducir los resultados muestra <- sample(1:10, size = 5) print(muestra)
En este ejemplo, sample seleccionar´a 5 n´umeros diferentes sin repetici´on, ya que el reemplazo no est´a permitido.
Si permitimos el reemplazo, algunos n´umeros pueden repetirse:
set.seed(123) muestra_reemplazo <- sample(1:10, size = 5, replace = TRUE) print(muestra_reemplazo)
Aqu´ı, los n´umeros pueden aparecer m´as de una vez, ya que cada vez que se selecciona un n´umero, vuelve a estar disponible para la siguiente selecci´on.
Podemos asignar probabilidades diferentes a cada n´umero. Por ejemplo, si quer- emos que los n´umeros m´as grandes tengan m´as probabilidad de ser seleccionados:
set.seed(123) muestra_prob <- sample(1:10, size = 5, prob = c(1,1,1,1,1,2,2,2,2,2)) print(muestra_prob)
En este caso, los n´umeros 6 a 10 tienen el doble de probabilidad de ser seleccionados en comparaci´on con los n´umeros 1 a 5.
Podemos visualizar los datos generados con un histograma:
hist(valores, main="Distribuci´on normal de los datos", xlab="Valores")
Este gr´afico mostrar´a c´omo los valores aleatorios se distribuyen en torno a la media de 50 con una dispersi´on determinada por la desviaci´on est´andar de
La funci´on runif en R se utiliza para generar n´umeros aleatorios que siguen una distribuci´on uniforme. En una distribuci´on uniforme, todos los valores dentro de un intervalo tienen la misma probabilidad de ser seleccionados. Esto contrasta con otras distribuciones, como la normal, en la que los valores cercanos a la media son m´as probables.
runif(n, min = 0, max = 1)
Los par´ametros de la funci´on son los siguientes:
Supongamos que queremos generar 10 n´umeros aleatorios entre 5 y 10:
set.seed(123) # Para reproducir los resultados valores <- runif(10, min = 5, max = 10) print(valores)
En este caso, runif generar´a 10 n´umeros que estar´an uniformemente dis- tribuidos en el intervalo [5, 10]. Cada n´umero dentro de este rango tiene la misma probabilidad de ser seleccionado.
Los valores generados por runif estar´an distribuidos de manera uniforme en el intervalo especificado. Esto significa que no habr´a una mayor concentraci´on de n´umeros en ninguna parte del intervalo: cualquier subintervalo del mismo tama˜no contendr´a aproximadamente la misma cantidad de n´umeros aleatorios.
La funci´on duplicated en R se utiliza para identificar elementos duplicados en un vector, data.frame o matriz. Retorna un vector l´ogico que indica si un elemento es una duplicaci´on de uno que aparece anteriormente en el objeto.
duplicated(x, fromLast = FALSE)
Donde:
Supongamos que tenemos un vector con algunos elementos repetidos y queremos identificar cu´ales son duplicados.
vector <- c (1 , 2 , 3 , 2 , 4 , 5 , 3)
duplicados <- duplicated ( vector ) print ( duplicados )
Resultado:
[1] FALSE FALSE FALSE TRUE FALSE FALSE TRUE
En este ejemplo, los elementos en las posiciones 4 y 7 son duplicados de los elementos que aparecen anteriormente en el vector.
Supongamos que tenemos un data.frame con algunas filas duplicadas y quere- mos identificarlas.
datos <- data. frame ( ID = c (1 , 2 , 3 , 2 , 4 , 5 , 3) , Nombre = c ( " Juan " , " Ana " , " Carlos " , " Ana " , " Lucia " , " Juan " ,→ , " Carlos " ) )
print ( datos )
duplicados <- duplicated ( datos ) print ( duplicados )
Resultado:
[1] FALSE FALSE FALSE TRUE FALSE TRUE TRUE
Aqu´ı, las filas 4, 6 y 7 son duplicadas de filas anteriores en el data.frame.
Podemos usar el argumento fromLast = TRUE para identificar duplicados desde el final hacia el principio.
duplicados _ desde _ final <- duplicated ( vector , fromLast = TRUE ,→ ) print ( duplicados _ desde _ final )
Resultado:
[1] FALSE TRUE TRUE FALSE FALSE FALSE FALSE
En este caso, los elementos en las posiciones 1 y 4 son duplicados de elementos que aparecen despu´es de ellos en el vector.
Para eliminar filas duplicadas en un data.frame, podemos usar la funci´on unique combinada con duplicated.
datos _ sin _ duplicados <- datos [! duplicated ( datos ) , ] print ( datos _ sin _ duplicados )
Imagina que trabajas en una empresa que vende productos en diferentes regiones y deseas realizar un an´alisis de las ventas trimestrales de tus productos. Tienes un conjunto de datos que contiene la siguiente informaci´on en un data frame o tabla, llamado ventas:
Columna Producto: El nombre del producto vendido. ”Martillos”, ”Serruchos”, ”Clavos”, ”Mangueras”, ”Pinzas” Columna Region: La regi´on donde se realiz´o la venta. Hay 6 regiones: (1, 2, 3, 4, 5 y 6). Columna Trimestre: El trimestre en que se realiz´o la venta (1, 2, 3 o 4). Columna Ventas: El monto de las ventas en esa transacci´on. De 0 a 1000 pesos.
Nota: Genere de manera aleatoria la tabla ventas con 200 registros.
Realizar las siguientes operaciones auxili´andose de las funciones estudiadas anteriormente.
vproducto = sample(c("Martillos", "Serruchos", "Clavos", "Mangueras", "Pinzas"), size = 200, replace = TRUE)
vregion = sample(1:6, size = 200, replace = TRUE)
vtrimestre = sample(1:4, size = 200, replace = TRUE)
vventas = runif(200, min = 0, max = 1000)
ventas <- data.frame(Producto = vproducto, Region = vregion, Trimestre = vtrimestre, Ventas = vventas)
ventas