# Cargar datos desde archivo CSV
datos <- read.csv("tiktok_dataset.csv")
# Visualizar las primeras filas
head(datos)
## X. claim_status video_id video_duration_sec
## 1 1 claim 7017666017 59
## 2 2 claim 4014381136 32
## 3 3 claim 9859838091 31
## 4 4 claim 1866847991 25
## 5 5 claim 7105231098 19
## 6 6 claim 8972200955 35
## video_transcription_text
## 1 someone shared with me that drone deliveries are already happening and will become common by 2025
## 2 someone shared with me that there are more microorganisms in one teaspoon of soil than people on the planet
## 3 someone shared with me that american industrialist andrew carnegie had a net worth of $475 million usd, worth over $300 billion usd today
## 4 someone shared with me that the metro of st. petersburg, with an average depth of hundred meters, is the deepest metro in the world
## 5 someone shared with me that the number of businesses allowing employees to bring pets to the workplace has grown by 6% worldwide
## 6 someone shared with me that gross domestic product (gdp) is the best financial indicator of a country's overall trade potential
## verified_status author_ban_status video_view_count video_like_count
## 1 not verified under review 343296 19425
## 2 not verified active 140877 77355
## 3 not verified active 902185 97690
## 4 not verified active 437506 239954
## 5 not verified active 56167 34987
## 6 not verified under review 336647 175546
## video_share_count video_download_count video_comment_count
## 1 241 1 0
## 2 19034 1161 684
## 3 2858 833 329
## 4 34812 1234 584
## 5 4110 547 152
## 6 62303 4293 1857
# Reemplazar valores NA con 0 en las columnas numéricas
datos$video_view_count[is.na(datos$video_view_count)] <- 0
datos$video_like_count[is.na(datos$video_like_count)] <- 0
datos$video_share_count[is.na(datos$video_share_count)] <- 0
datos$video_download_count[is.na(datos$video_download_count)] <- 0
datos$video_comment_count[is.na(datos$video_comment_count)] <- 0
grafico1 <- ggplot(datos, aes(x = video_view_count, y = video_like_count)) +
geom_point(color = "blue", alpha = 0.6) +
labs(title = "Relación entre Vistas y Likes",
x = "Número de Vistas",
y = "Número de Likes") +
theme_minimal()
print(ggplotly(grafico1))
Explicación:
Este gráfico de dispersión muestra cómo los likes aumentan a medida que
un video tiene más vistas. Aunque no todos los videos con muchas vistas
tienen muchos likes, se observa una tendencia creciente.
grafico2 <- ggplot(datos, aes(x = video_duration_sec)) +
geom_histogram(fill = "orange", bins = 20) +
labs(title = "Distribución de Duración de Videos",
x = "Duración del Video (segundos)",
y = "Cantidad de Videos") +
theme_minimal()
print(ggplotly(grafico2))
Explicación:
Este histograma permite ver qué tan comunes son ciertas duraciones. La
mayoría de los videos parecen durar entre 15 y 60 segundos.
# Calcular promedios
media_vistas <- aggregate(video_view_count ~ verified_status, data = datos, mean)
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
## Warning in mean.default(X[[i]], ...): argument is not numeric or logical:
## returning NA
grafico3 <- ggplot(media_vistas, aes(x = verified_status, y = video_view_count, fill = verified_status)) +
geom_bar(stat = "identity") +
labs(title = "Promedio de Vistas por Estado de Verificación",
x = "Estado de Verificación",
y = "Promedio de Vistas") +
theme_minimal()
print(ggplotly(grafico3))
Explicación:
Este gráfico de barras muestra el promedio de vistas que reciben los
usuarios verificados frente a los no verificados. Permite observar si
estar verificado está relacionado con mayor alcance.
grafico4 <- ggplot(datos, aes(x = video_duration_sec, y = video_comment_count)) +
geom_point(color = "purple", alpha = 0.6) +
labs(title = "Comentarios en Relación a la Duración del Video",
x = "Duración del Video (segundos)",
y = "Número de Comentarios") +
theme_minimal()
print(ggplotly(grafico4))
Explicación:
Este gráfico analiza si los videos más largos generan más comentarios.
Se observa cierta dispersión, pero hay videos más largos que tienden a
recibir más interacción.
A través de visualizaciones simples pero efectivas, observamos cómo los videos más vistos tienden a tener más likes, cómo se distribuyen las duraciones de los videos, y el posible impacto del estado de verificación en la visibilidad. También exploramos cómo la duración puede relacionarse con los comentarios, aportando ideas útiles para creadores de contenido.