Antes hemos trabajado con archivos csv, los cuales son separados por comas y hemos graficado los datos del mismo, ahora vamos a leer un archivo con formato JSON para ampliar aun mas nuestro conocimiento trtabajando con R. Para poder caragar nuestro archivo y poder leer lo que contiene utilizamos el siguiente codigo:
library(rjson)
serie <- fromJSON(file="C:/R/InfoDataset.json")
str(serie)
## List of 6
## $ ID : chr [1:1000] "4586856742" "9694886228" "8511689303" "2393617574" ...
## $ Serie : chr [1:1000] "Tintin and I" "Mind Game" "Soul of a Man, The" "Twin Town" ...
## $ Duracion : num [1:1000] 50 50 51 59 47 60 49 41 58 48 ...
## $ Clasificacion : num [1:1000] 4 3 1 3 3 4 4 2 4 4 ...
## $ Genero : chr [1:1000] "Comedy|Documentary|Romance" "Crime|Drama|Thriller" "Drama" "Drama|Romance" ...
## $ Fecha_Creacion: chr [1:1000] "10/10/2021" "6/2/2021" "9/18/2021" "2/13/2022" ...
Como podemos ver se nos muestran los datos que contiene nuestro archivo, por los datos que nos muestra podemos darnos cuenta que se trata de Series, nos muestra un ID, el nombre de la serie, la Duracion en capitulos, en la clasificacion suponemos que trata de la calificacion en un rango de 1 a 5 estrellas el Genero y la Fecha de Creacion o publiciacion de esta serie.
Ahora vamos a realizar unas graficas para poder comprender de mejor manera los datos contenidos en este archivo, primero realizaremos una grafica de Barras con el siguiente codigo:
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.3
serieDF <- as.data.frame(serie)
ggplot(data = serieDF, mapping = aes(x = factor(Duracion))) + geom_bar() + coord_flip()
Como podemos observar, el mayor numero de capitulos que contiene una serie son 60, mientras que los menos que contiene son 40 o un poco menos. Pero esto de esa manera no nos sirve de nada, por lo tanto vamos a graficar ahora la clasificacion que se les a dado a las series.
library(plotly)
## Warning: package 'plotly' was built under R version 4.1.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
serieDF <- as.data.frame(serie)
fig <- plot_ly(serieDF, labels = ~Clasificacion, values = ~5, type ='pie')
fig <- fig %>% layout(title = 'Clasificacion', xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
fig
Ahora podemos observar que existen muy pocos titulos a los que e les ha dado una calificacion de 5 o como viene en nuestro archivo JSON la Clasificacion mas alta es la de 5 y es la que menos se han dado a las series.
Y ahora para poder analizar estas 2 columnas de nuestro archivo JSON, las cuales son las unicas numericas y que podemos graficar, utilizaremos el sigueinte codigo:
fig2 <- plot_ly(serieDF, x = ~Clasificacion, y = ~Duracion, text = ~Serie, type = 'scatter', mode = 'markers',
marker = list(size = ~Clasificacion, opacity = 0.8))
fig2 <- fig2 %>% layout(title = 'Clasificacion y Duracion',
xaxis = list(showgrid = FALSE),
yaxis = list(showgrid = FALSE))
fig2
Como podemos ver, nuestra hipotesis la cual era: “Se recibe mejor Calificaion a menor numero de capitulos”, es completamente incierta, pues con esta ultima grafica podemos comprobar que asi como existen con 60 capitulos tienen una clasificacion de 5, ademas de que estas no tienen ninguna relacion entre si.