#Descargar librerias
library(readxl)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#llamar la ubicacioin de la base de datos
setwd("C:/Users/leoxs/OneDrive/Escritorio/Diplomado/Segundo modulo/Expocición")
A continuacion vamos nombrar la base de datos la cual de daremos como nombre “datos”, para lo cual insertamos el comando read.csv y luego llamamos el acceso de ruta de la base de datos.
Adicionalmete para mayor verasidad de la informacion a continuacion se agregara el link wed de la base de datos y paara mayor facilidad tambien se agregara el hipervinculo que dirige drectamente a la pagina web, el nombre del hipervinculo sera visitar kaggle.
Como la base de datos se encuentra en formato CSV, utilizamos la
función read.csv() para realizar su importación.
#NOMBRAR LA BASE DE DATOS
datos=read.csv("C:/Users/leoxs/OneDrive/Escritorio/Diplomado/Segundo modulo/Expocición/Social_media_impact_on_life.csv")
La base de datos ha sido almacenada en el objeto denominado
datos, a partir del cual se realizarán las diferentes
actividades solicitadas.
La exploración inicial permite conocer las características generales de la base de datos y verificar cómo está organizada la información.
#comando head
head(datos)
## Student_ID Age Gender Academic_Level Primary_Platform Daily_Usage_Hours
## 1 STU_2024000 19 Female Undergraduate Snapchat 7.5
## 2 STU_2024001 19 Female Undergraduate Instagram 4.6
## 3 STU_2024002 17 Female High School TikTok 10.9
## 4 STU_2024003 16 Female High School YouTube 6.0
## 5 STU_2024004 17 Male High School LinkedIn 3.3
## 6 STU_2024005 16 Male High School TikTok 6.2
## Weekend_Extra_Hours Device_Type Sleep_Duration_Hours Sleep_Quality_Score
## 1 1.5 Smartphone 5.9 2
## 2 1.3 Smartphone 7.9 3
## 3 1.7 Smartphone 5.2 1
## 4 2.3 Tablet 7.6 4
## 5 2.6 Smartphone 7.6 4
## 6 1.6 Smartphone 5.9 1
## Late_Night_Usage Social_Comparison_Frequency Perceived_Stress_Score
## 1 True Always 20
## 2 True Sometimes 17
## 3 True Frequently 18
## 4 True Sometimes 15
## 5 True Never 16
## 6 False Rarely 10
## Mental_Health_Index Academic_Performance_GPA Overall_Impact
## 1 73 2.73 Neutral
## 2 90 3.21 Beneficial
## 3 70 3.00 Neutral
## 4 82 3.42 Beneficial
## 5 84 3.41 Beneficial
## 6 66 3.21 Beneficial
La función head() permite visualizar las primeras seis
observaciones de la base de datos.
#codigo tail
tail(datos)
## Student_ID Age Gender Academic_Level Primary_Platform Daily_Usage_Hours
## 4495 STU_2028494 16 Male High School YouTube 5.2
## 4496 STU_2028495 16 Male High School YouTube 5.8
## 4497 STU_2028496 19 Female Undergraduate LinkedIn 3.8
## 4498 STU_2028497 19 Male Undergraduate Instagram 7.7
## 4499 STU_2028498 16 Male High School LinkedIn 4.6
## 4500 STU_2028499 24 Male Undergraduate Instagram 1.8
## Weekend_Extra_Hours Device_Type Sleep_Duration_Hours Sleep_Quality_Score
## 4495 1.6 Smartphone 5.7 3
## 4496 1.2 Smartphone 7.8 3
## 4497 3.0 Smartphone 6.6 3
## 4498 1.1 Smartphone 6.0 2
## 4499 3.3 Laptop/PC 7.1 3
## 4500 2.1 Smartphone 6.8 3
## Late_Night_Usage Social_Comparison_Frequency Perceived_Stress_Score
## 4495 True Sometimes 24
## 4496 True Sometimes 11
## 4497 False Frequently 9
## 4498 True Frequently 13
## 4499 False Sometimes 22
## 4500 True Frequently 10
## Mental_Health_Index Academic_Performance_GPA Overall_Impact
## 4495 77 3.31 Neutral
## 4496 79 2.85 Beneficial
## 4497 83 3.37 Beneficial
## 4498 73 3.16 Beneficial
## 4499 87 3.50 Beneficial
## 4500 98 3.73 Beneficial
La función tail() permite visualizar las últimas seis
observaciones de la base de datos.
#codigo names
names(datos)
## [1] "Student_ID" "Age"
## [3] "Gender" "Academic_Level"
## [5] "Primary_Platform" "Daily_Usage_Hours"
## [7] "Weekend_Extra_Hours" "Device_Type"
## [9] "Sleep_Duration_Hours" "Sleep_Quality_Score"
## [11] "Late_Night_Usage" "Social_Comparison_Frequency"
## [13] "Perceived_Stress_Score" "Mental_Health_Index"
## [15] "Academic_Performance_GPA" "Overall_Impact"
La función names() permite conocer los nombres de las
variables que contiene la base de datos.
dim(datos)
## [1] 4500 16
La función dim() permite conocer el número de filas y
columnas de la base de datos.
class(datos)
## [1] "data.frame"
La función class() permite conocer la clase general del
objeto datos.
#codigo str
str(datos)
## 'data.frame': 4500 obs. of 16 variables:
## $ Student_ID : chr "STU_2024000" "STU_2024001" "STU_2024002" "STU_2024003" ...
## $ Age : int 19 19 17 16 17 16 20 19 18 18 ...
## $ Gender : chr "Female" "Female" "Female" "Female" ...
## $ Academic_Level : chr "Undergraduate" "Undergraduate" "High School" "High School" ...
## $ Primary_Platform : chr "Snapchat" "Instagram" "TikTok" "YouTube" ...
## $ Daily_Usage_Hours : num 7.5 4.6 10.9 6 3.3 6.2 5.6 1.2 3.3 4.7 ...
## $ Weekend_Extra_Hours : num 1.5 1.3 1.7 2.3 2.6 1.6 1.8 2.4 1.8 1.7 ...
## $ Device_Type : chr "Smartphone" "Smartphone" "Smartphone" "Tablet" ...
## $ Sleep_Duration_Hours : num 5.9 7.9 5.2 7.6 7.6 5.9 8.3 8.1 6.4 7.9 ...
## $ Sleep_Quality_Score : int 2 3 1 4 4 1 3 5 2 2 ...
## $ Late_Night_Usage : chr "True" "True" "True" "True" ...
## $ Social_Comparison_Frequency: chr "Always" "Sometimes" "Frequently" "Sometimes" ...
## $ Perceived_Stress_Score : num 20 17 18 15 16 10 10 6 23 6 ...
## $ Mental_Health_Index : int 73 90 70 82 84 66 88 95 88 96 ...
## $ Academic_Performance_GPA : num 2.73 3.21 3 3.42 3.41 3.21 3.72 3.37 3.59 3.66 ...
## $ Overall_Impact : chr "Neutral" "Beneficial" "Neutral" "Beneficial" ...
La función str() permite analizar la estructura de la
base de datos y observar cómo R almacenó cada una de sus variables.
#codigo glimpse
glimpse(datos)
## Rows: 4,500
## Columns: 16
## $ Student_ID <chr> "STU_2024000", "STU_2024001", "STU_2024002…
## $ Age <int> 19, 19, 17, 16, 17, 16, 20, 19, 18, 18, 15…
## $ Gender <chr> "Female", "Female", "Female", "Female", "M…
## $ Academic_Level <chr> "Undergraduate", "Undergraduate", "High Sc…
## $ Primary_Platform <chr> "Snapchat", "Instagram", "TikTok", "YouTub…
## $ Daily_Usage_Hours <dbl> 7.5, 4.6, 10.9, 6.0, 3.3, 6.2, 5.6, 1.2, 3…
## $ Weekend_Extra_Hours <dbl> 1.5, 1.3, 1.7, 2.3, 2.6, 1.6, 1.8, 2.4, 1.…
## $ Device_Type <chr> "Smartphone", "Smartphone", "Smartphone", …
## $ Sleep_Duration_Hours <dbl> 5.9, 7.9, 5.2, 7.6, 7.6, 5.9, 8.3, 8.1, 6.…
## $ Sleep_Quality_Score <int> 2, 3, 1, 4, 4, 1, 3, 5, 2, 2, 2, 2, 1, 5, …
## $ Late_Night_Usage <chr> "True", "True", "True", "True", "True", "F…
## $ Social_Comparison_Frequency <chr> "Always", "Sometimes", "Frequently", "Some…
## $ Perceived_Stress_Score <dbl> 20, 17, 18, 15, 16, 10, 10, 6, 23, 6, 11, …
## $ Mental_Health_Index <int> 73, 90, 70, 82, 84, 66, 88, 95, 88, 96, 83…
## $ Academic_Performance_GPA <dbl> 2.73, 3.21, 3.00, 3.42, 3.41, 3.21, 3.72, …
## $ Overall_Impact <chr> "Neutral", "Beneficial", "Neutral", "Benef…
La función glimpse() permite observar de manera resumida
los nombres, tipos y algunos valores de las variables.
A continuación se seleccionarán dos variables categóricas que no se encuentran codificadas numéricamente y se transformarán sus categorías en valores numéricos.
A continuacion vamos a codificar la variable Device_Type, la cual dentro de la base de datos nos refleja el tipo de disposibo principal que el estudiante usa para ver sus redes sociales teniendo en total las siguientes tres categorias (smartphone, portátil/PC, tableta).
datos$Device_Type_Codificado <- ifelse(datos$Device_Type == "Smartphone", 1,
ifelse(datos$Device_Type == "Tablet", 2,
ifelse(datos$Device_Type == "Laptop/PC", 3, NA)))
names(datos)
## [1] "Student_ID" "Age"
## [3] "Gender" "Academic_Level"
## [5] "Primary_Platform" "Daily_Usage_Hours"
## [7] "Weekend_Extra_Hours" "Device_Type"
## [9] "Sleep_Duration_Hours" "Sleep_Quality_Score"
## [11] "Late_Night_Usage" "Social_Comparison_Frequency"
## [13] "Perceived_Stress_Score" "Mental_Health_Index"
## [15] "Academic_Performance_GPA" "Overall_Impact"
## [17] "Device_Type_Codificado"
class(datos$Device_Type_Codificado)
## [1] "numeric"
str(datos$Device_Type_Codificado)
## num [1:4500] 1 1 1 2 1 1 1 1 1 1 ...
La codificación realizada es la siguiente:
| Categoría | Código |
|---|---|
| Smartphone | 1 |
| Tablet | 2 |
| Laptop/PC | 3 |
Para comprobar los valores obtenidos se utiliza la función
table():
table(datos$Device_Type_Codificado, useNA = "ifany")
##
## 1 2 3
## 3775 129 596
A acontuniacion vamos a codificar la varibales Late_Night_Usage, la cual dentro de la base de datos nos refleja si el estudiante frecunta el uso de pantallas despues de la media noche, teniendo las sigueintes dos categorias (falso y verdadero).
datos$Late_Night_Usage_Codificada <- ifelse(datos$Late_Night_Usage == "True", 1,
ifelse(datos$Late_Night_Usage == "False", 2, NA))
names(datos)
## [1] "Student_ID" "Age"
## [3] "Gender" "Academic_Level"
## [5] "Primary_Platform" "Daily_Usage_Hours"
## [7] "Weekend_Extra_Hours" "Device_Type"
## [9] "Sleep_Duration_Hours" "Sleep_Quality_Score"
## [11] "Late_Night_Usage" "Social_Comparison_Frequency"
## [13] "Perceived_Stress_Score" "Mental_Health_Index"
## [15] "Academic_Performance_GPA" "Overall_Impact"
## [17] "Device_Type_Codificado" "Late_Night_Usage_Codificada"
class(datos$Late_Night_Usage_Codificada)
## [1] "numeric"
str(datos$Late_Night_Usage_Codificada)
## num [1:4500] 1 1 1 1 1 2 2 2 2 2 ...
La codificación realizada es la siguiente:
| Categoría | Código |
|---|---|
| True | 1 |
| False | 2 |
Para comprobar los valores obtenidos se utiliza la función
table():
table(datos$Late_Night_Usage_Codificada, useNA = "ifany")
##
## 1 2
## 2644 1856
Las variables categóricas pueden convertirse a tipo
factor, permitiendo que R las reconozca como
categorías.
A continuacion vamos a canvertir la varibale Gender, la cual es de tipo categorica a una tipo factor.
datos$Gender_Factor <- factor(datos$Gender)
class(datos$Gender_Factor)
## [1] "factor"
str(datos$Gender_Factor)
## Factor w/ 4 levels "Female","Male",..: 1 1 1 1 2 2 2 1 1 1 ...
levels(datos$Gender_Factor)
## [1] "Female" "Male" "Non-Binary"
## [4] "Prefer not to say"
La función levels() permite observar las categorías que
contiene la variable Gender_Factor.
A continuacion vamos a canvertir la varibale Device_Type, la cual es de tipo categorica a una tipo factor.
datos$Device_Type_Factor <- factor(datos$Device_Type)
class(datos$Device_Type_Factor)
## [1] "factor"
str(datos$Device_Type_Factor)
## Factor w/ 3 levels "Laptop/PC","Smartphone",..: 2 2 2 3 2 2 2 2 2 2 ...
levels(datos$Device_Type_Factor)
## [1] "Laptop/PC" "Smartphone" "Tablet"
La variable Device_Type_Factor ahora se encuentra
almacenada como un factor y sus niveles corresponden a las diferentes
categorías de dispositivo.
Una variable categórica que posee un orden natural puede convertirse
en un factor ordenado. Para esta actividad se seleccionó la variable
Academic_Level, debido a que sus categorías representan
diferentes niveles académicos.
Las categorías encontradas en la base de datos son:
Estas categorías presentan un orden natural desde el nivel académico más básico hasta el más avanzado.
unique(datos$Academic_Level)
## [1] "Undergraduate" "High School" "Postgraduate"
A continuación se convierte la variable Academic_Level
en un factor ordenado:
datos$Academic_Level_Ordenado <- factor(
datos$Academic_Level,
levels = c("High School", "Undergraduate", "Postgraduate"),
ordered = TRUE
)
Para comprobar que la variable fue convertida correctamente se
utilizan las funciones class(), str() y
levels():
class(datos$Academic_Level_Ordenado)
## [1] "ordered" "factor"
str(datos$Academic_Level_Ordenado)
## Ord.factor w/ 3 levels "High School"<..: 2 2 1 1 1 1 2 2 2 2 ...
levels(datos$Academic_Level_Ordenado)
## [1] "High School" "Undergraduate" "Postgraduate"
La variable Academic_Level_Ordenado ahora es un factor
ordenado. El orden establecido es:
High School < Undergraduate < Postgraduate
Esto permite que R reconozca que existe una relación de orden entre las diferentes categorías académicas.
En este documento se utilizaron diferentes elementos trabajados mediante Markdown:
A continuación se presenta la representación gráfica de la clasificación de las variables utilizadas en el análisis de la base de datos, mostrando su tipología estadística:
La exploración inicial permitió conocer la estructura y las
características generales de la base de datos mediante las funciones
head(), tail(), names(),
dim(), class(), str() y
glimpse().
Posteriormente, se realizó la codificación numérica de dos variables
categóricas, asignando valores numéricos a las diferentes categorías de
Device_Type y Late_Night_Usage.
También se transformaron las variables Gender y
Device_Type a tipo factor, permitiendo que R
las reconozca correctamente como variables categóricas. Sus niveles
fueron comprobados mediante las funciones class(),
str() y levels().
Finalmente, se convirtió la variable Academic_Level en
un factor ordenado. Para ello se estableció el orden High
School, Undergraduate y Postgraduate, de acuerdo con la
progresión natural de los niveles académicos.
Estas transformaciones permiten preparar la base de datos para posteriores análisis estadísticos y facilitan el manejo de las variables dentro del programa R.