ANALISIS POLITICOS

Para realizar el analisis y ontener los csv con los datos de los candidatos a la precidencia utilice la pagina de https://apify.com/ la cual no extrajo los datos necesarios para el analisis.

cabe recalcar que cambiamos los nombres de los candidatos claudia, xoxhilt y mainez respectivamente por candidatoA, candidatoB y CandidatoC. lo primero que ocupamos para realizar nuestro analisis en Rstudio es:

Instalar y cargar las librerías necesarias: En esta sección, se instalan y cargan las librerías necesarias para el análisis y visualización de datos. ggplot2 se utiliza para crear gráficos, mientras que reshape2 se utiliza para manipular los datos en formato largo.

library(ggplot2)
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.1.3

Leer los datasets:

Aquí se leen los archivos CSV que contienen los datos de cada candidato y se almacenan en tres variables separadas: candidatoA, candidatoB y candidatoC.

candidatoA <- read.csv("C:/Users/Charly/OneDrive/Desktop/Documentos/Octavo Semestre/SERGIO ANALISIS DE DATOS/unidad 4/Claudia.csv")
candidatoB <- read.csv("C:/Users/Charly/OneDrive/Desktop/Documentos/Octavo Semestre/SERGIO ANALISIS DE DATOS/unidad 4/Xochilt.csv")
candidatoC <- read.csv("C:/Users/Charly/OneDrive/Desktop/Documentos/Octavo Semestre/SERGIO ANALISIS DE DATOS/unidad 4/Maynez.csv")

Renombrar las columnas adecuadamente:

En esta sección, se renombran las columnas de cada conjunto de datos para que coincidan con un formato común.

names(candidatoA) <- c("time", "isVideo", "comments", "likes", "shares", "text")
names(candidatoB) <- c("time", "comments", "likes", "shares", "text", "isVideo")
names(candidatoC) <- c("text", "time", "shares", "comments", "isVideo", "likes")

Mantener solo las columnas necesarias y convertirlas a numéricas:

En este bloque, se seleccionan las columnas relevantes (likes, comentarios y compartidos) y se convierten a tipo numérico.

candidatoA <- candidatoA[, c("likes", "comments", "shares")]
candidatoB <- candidatoB[, c("likes", "comments", "shares")]
candidatoC <- candidatoC[, c("likes", "comments", "shares")]

# Convertir las columnas a numéricas
candidatoA$likes <- as.numeric(as.character(candidatoA$likes))
candidatoA$comments <- as.numeric(as.character(candidatoA$comments))
candidatoA$shares <- as.numeric(as.character(candidatoA$shares))

candidatoB$likes <- as.numeric(as.character(candidatoB$likes))
candidatoB$comments <- as.numeric(as.character(candidatoB$comments))
candidatoB$shares <- as.numeric(as.character(candidatoB$shares))

candidatoC$likes <- as.numeric(as.character(candidatoC$likes))
candidatoC$comments <- as.numeric(as.character(candidatoC$comments))
candidatoC$shares <- as.numeric(as.character(candidatoC$shares))

Añadir columna “time” a cada conjunto de datos:

Aquí se agrega una nueva columna llamada “time” a cada conjunto de datos, que representa el índice de fila de los datos.

candidatoA$time <- seq_len(nrow(candidatoA))  
candidatoB$time <- seq_len(nrow(candidatoB))
candidatoC$time <- seq_len(nrow(candidatoC))

Añadir columna de identificación:

En esta sección, se agrega una nueva columna llamada “candidate” a cada conjunto de datos para identificar el candidato al que pertenecen.

candidatoA$candidate <- "A"
candidatoB$candidate <- "B"
candidatoC$candidate <- "C"

Combinar los datasets:

Aquí se combinan los tres conjuntos de datos en uno solo utilizando la función rbind(), que combina los conjuntos de datos por filas.

data <- rbind(candidatoA, candidatoB, candidatoC)

Guardar el conjunto de datos combinado como un archivo CSV:

Esta línea guarda el conjunto de datos combinado en un archivo CSV llamado “datos_combinados.csv” en el directorio de trabajo actual. La opción row.names = FALSE evita que se incluyan los números de fila en el archivo CSV.

write.csv(data, "datos_combinados.csv", row.names = FALSE)

Convertir el dataframe a formato largo:

Aquí se convierte el dataframe combinado a un formato largo utilizando la función melt() de la librería reshape2. Esto es útil para trabajar con los datos en un formato más adecuado para ciertos tipos de análisis y visualizaciones.

data_long <- melt(data, id.vars = "candidate", measure.vars = c("likes", "comments", "shares"))

Crear la gráfica de barras:

se crea una gráfica de barras que compara los likes, comentarios y compartidos de cada candidato. La función ggplot() de la librería ggplot2 se utiliza para inicializar el gráfico, y luego se agregan capas geométricas (geom_bar()) para representar los datos como barras. Las etiquetas del eje x, y y de la leyenda se personalizan con labs(), y se aplica un tema minimalista con theme_minimal().

ggplot(data_long, aes(x = candidate, y = value, fill = variable)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Comparación de Likes, Comentarios y Compartidos",
       x = "Candidatos",
       y = "Cantidad",
       fill = "Métrica") +
  theme_minimal()

Convertir la columna “time” a formato de fecha y hora:

En esta sección, se convierte la columna “time” de cada conjunto de datos en formato de fecha y hora utilizando la función as.POSIXct(). La cadena de formato “%Y-%m-%d %H:%M:%S” especifica que la columna debe interpretarse como año-mes-día hora:minuto

# este formato no es el bueno es el que sigue ya que no me hacepto el otro Rmarkdown
candidatoA$time <- as.POSIXct(candidatoA$time, origin = "1970-01-01", tz = "UTC")
candidatoB$time <- as.POSIXct(candidatoB$time, origin = "1970-01-01", tz = "UTC")
candidatoC$time <- as.POSIXct(candidatoC$time, origin = "1970-01-01", tz = "UTC")

## este es el codigo bueno para  Convertir la columna "time" a formato de fecha y hora
#candidatoA$time <- as.POSIXct(candidatoA$time, format = "%Y-%m-%d %H:%M:%S")
#candidatoB$time <- as.POSIXct(candidatoB$time, format = "%Y-%m-%d %H:%M:%S")
#candidatoC$time <- as.POSIXct(candidatoC$time, format = "%Y-%m-%d %H:%M:%S")

Extraer la hora de la columna “time”:

Aquí se extrae la hora de la columna “time” de cada conjunto de datos utilizando la función format(). Esto se hace para poder visualizar y analizar los datos de likes, comentarios y compartidos por hora en las siguientes gráficas.

candidatoA$hora <- format(candidatoA$time, "%H:%M")
candidatoB$hora <- format(candidatoB$time, "%H:%M")
candidatoC$hora <- format(candidatoC$time, "%H:%M")

Crear gráficas de dispersión de likes, compartidos y comentarios por hora para cada candidato:

Estas secciones generan gráficas de dispersión para cada candidato, mostrando la cantidad de likes por hora. Se utiliza geom_point() para representar los datos como puntos en el gráfico. El color de los puntos y el título del gráfico se personalizan según el candidato.

ggplot(candidatoA, aes(x = hora, y = likes)) +
  geom_point(color = "blue") +
  labs(title = "Likes por hora - Candidato A",
       x = "Hora",
       y = "Likes") +
  theme_minimal()

ggplot(candidatoB, aes(x = hora, y = likes)) +
  geom_point(color = "red") +
  labs(title = "Likes por hora - Candidato B",
       x = "Hora",
       y = "Likes") +
  theme_minimal()

ggplot(candidatoC, aes(x = hora, y = likes)) +
  geom_point(color = "green") +
  labs(title = "Likes por hora - Candidato C",
       x = "Hora",
       y = "Likes") +
  theme_minimal()

Graficas de Compartidos

ggplot(candidatoA, aes(x = hora, y = shares)) +
  geom_point(color = "blue") +
  labs(title = "Compartidos por hora - Candidato A",
       x = "Hora",
       y = "Compartidos") +
  theme_minimal()

ggplot(candidatoB, aes(x = hora, y = shares)) +
  geom_point(color = "red") +
  labs(title = "Compartidos por hora - Candidato B",
       x = "Hora",
       y = "Compartidos") +
  theme_minimal()

ggplot(candidatoC, aes(x = hora, y = shares)) +
  geom_point(color = "green") +
  labs(title = "Compartidos por hora - Candidato C",
       x = "Hora",
       y = "Compartidos") +
  theme_minimal()

Graficasde comentarios:

ggplot(candidatoA, aes(x = hora, y = comments)) +
  geom_point(color = "blue") +
  labs(title = "Comentarios por hora - Candidato A",
       x = "Hora",
       y = "Comentarios") +
  theme_minimal()

ggplot(candidatoB, aes(x = hora, y = comments)) +
  geom_point(color = "red") +
  labs(title = "Comentarios por hora - Candidato B",
       x = "Hora",
       y = "Comentarios") +
  theme_minimal()

ggplot(candidatoC, aes(x = hora, y = comments)) +
  geom_point(color = "green") +
  labs(title = "Comentarios por hora - Candidato C",
       x = "Hora",
       y = "Comentarios") +
  theme_minimal()

## Crear gráficas de barras de likes, compartidos y comentarios por hora para cada candidato: Estas secciones generan gráficas de barras para cada candidato, mostrando la cantidad de likes por hora. Se utiliza geom_bar() para representar los datos como barras en el gráfico. El color de las barras y el título del gráfico se personalizan según el candidato.

ggplot(candidatoA, aes(x = hora, y = comments)) +
  geom_bar(stat = "identity", fill = "blue") +
  labs(title = "Comentarios por hora - Candidato A",
       x = "Hora",
       y = "Comentarios") +
  theme_minimal()

ggplot(candidatoB, aes(x = hora, y = comments)) +
  geom_bar(stat = "identity", fill = "red") +
  labs(title = "Comentarios por hora - Candidato B",
       x = "Hora",
       y = "Comentarios") +
  theme_minimal()

ggplot(candidatoC, aes(x = hora, y = comments)) +
  geom_bar(stat = "identity", fill = "green") +
  labs(title = "Comentarios por hora - Candidato C",
       x = "Hora",
       y = "Comentarios") +
  theme_minimal()

Grafica de Likes

ggplot(candidatoA, aes(x = hora, y = likes)) +
  geom_bar(stat = "identity", fill = "blue") +
  labs(title = "Likes por hora - Candidato A",
       x = "Hora",
       y = "Likes") +
  theme_minimal()

ggplot(candidatoB, aes(x = hora, y = likes)) +
  geom_bar(stat = "identity", fill = "red") +
  labs(title = "Likes por hora - Candidato B",
       x = "Hora",
       y = "Likes") +
  theme_minimal()

ggplot(candidatoC, aes(x = hora, y = likes)) +
  geom_bar(stat = "identity", fill = "green") +
  labs(title = "Likes por hora - Candidato C",
       x = "Hora",
       y = "Likes") +
  theme_minimal()

Grafica de compartidas

ggplot(candidatoA, aes(x = hora, y = shares)) +
  geom_bar(stat = "identity", fill = "blue") +
  labs(title = "Compartidas por hora - Candidato A",
       x = "Hora",
       y = "Compartidas") +
  theme_minimal()

ggplot(candidatoB, aes(x = hora, y = shares)) +
  geom_bar(stat = "identity", fill = "red") +
  labs(title = "Compartidas por hora - Candidato B",
       x = "Hora",
       y = "Compartidas") +
  theme_minimal()

ggplot(candidatoC, aes(x = hora, y = shares)) +
  geom_bar(stat = "identity", fill = "green") +
  labs(title = "Compartidas por hora - Candidato C",
       x = "Hora",
       y = "Compartidas") +
  theme_minimal()