1. Intro

Selamat datang di LBB saya. Pada LBB Data visualization ini saya menggunakan dataset USVideos, yang menunjukkan video yang ada di Youtube yang pernah trending di Amerika Serikat. Pada LBB ini saya ingin melihat Kategori Video apa yang sering menjadi trending dan channel youtube apa yang sering trending dan apakah benar apabila views dapat menjadi pengaruh untuk sebuah video menjadi trending atau tidak.

Setup

1.1 Library

Berikut adalah beberapa library yang digunakan untuk membuat project ini.

library(dplyr)
library(lubridate)
library(ggplot2)
library(tidyverse)

1.2 Read Data

Langkah selanjutnya adalah meng-import data dan cek struktur data.

# Import data
video <- read.csv("data/USvideos.csv")

# Cek struktur data
glimpse(video)
## Rows: 13,400
## Columns: 12
## $ trending_date          <chr> "17.14.11", "17.14.11", "17.14.11", "17.14.11",~
## $ title                  <chr> "WE WANT TO TALK ABOUT OUR MARRIAGE", "The Trum~
## $ channel_title          <chr> "CaseyNeistat", "LastWeekTonight", "Rudy Mancus~
## $ category_id            <int> 22, 24, 23, 24, 24, 28, 24, 28, 1, 25, 17, 24, ~
## $ publish_time           <chr> "2017-11-13T17:13:01.000Z", "2017-11-13T07:30:0~
## $ views                  <int> 748374, 2418783, 3191434, 343168, 2095731, 1191~
## $ likes                  <int> 57527, 97185, 146033, 10172, 132235, 9763, 1599~
## $ dislikes               <int> 2966, 6146, 5339, 666, 1989, 511, 2445, 778, 11~
## $ comment_count          <int> 15954, 12703, 8181, 2146, 17518, 1434, 1970, 34~
## $ comments_disabled      <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE~
## $ ratings_disabled       <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE~
## $ video_error_or_removed <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE~

1.3 Data Preprocessing

Pada data preprocessing ini, pertama-tama merubah tipe data trending_date dan publish_time menjadi tipe data yang tepat.

# Merubah `trending_date` menjadi tanggal
video$trending_date <- ydm(video$trending_date)

# Merubah `publish_time` menjadi tanggal
video$publish_time <- ymd_hms(video$publish_time,tz = "America/New_York")
str(video)
## 'data.frame':    13400 obs. of  12 variables:
##  $ trending_date         : Date, format: "2017-11-14" "2017-11-14" ...
##  $ title                 : chr  "WE WANT TO TALK ABOUT OUR MARRIAGE" "The Trump Presidency: Last Week Tonight with John Oliver (HBO)" "Racist Superman | Rudy Mancuso, King Bach & Lele Pons" "Nickelback Lyrics: Real or Fake?" ...
##  $ channel_title         : chr  "CaseyNeistat" "LastWeekTonight" "Rudy Mancuso" "Good Mythical Morning" ...
##  $ category_id           : int  22 24 23 24 24 28 24 28 1 25 ...
##  $ publish_time          : POSIXct, format: "2017-11-13 12:13:01" "2017-11-13 02:30:00" ...
##  $ views                 : int  748374 2418783 3191434 343168 2095731 119180 2103417 817732 826059 256426 ...
##  $ likes                 : int  57527 97185 146033 10172 132235 9763 15993 23663 3543 12654 ...
##  $ dislikes              : int  2966 6146 5339 666 1989 511 2445 778 119 1363 ...
##  $ comment_count         : int  15954 12703 8181 2146 17518 1434 1970 3432 340 2368 ...
##  $ comments_disabled     : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ ratings_disabled      : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ video_error_or_removed: logi  FALSE FALSE FALSE FALSE FALSE FALSE ...

1.4 Merubah category_id dari angka menjadi nama kategori

# Merubah `category_id` dari angka menjadi nama kategori
video$category_id <- sapply(X = as.character(video$category_id), FUN = switch, 
                           "1" = "Film and Animation",
                           "2" = "Autos and Vehicles", 
                           "10" = "Music", 
                           "15" = "Pets and Animals", 
                           "17" = "Sports",
                           "19" = "Travel and Events", 
                           "20" = "Gaming", 
                           "22" = "People and Blogs", 
                           "23" = "Comedy",
                           "24" = "Entertainment", 
                           "25" = "News and Politics",
                           "26" = "Howto and Style", 
                           "27" = "Education",
                           "28" = "Science and Technology", 
                           "29" = "Nonprofit and Activism",
                           "43" = "Shows")

video$category_id <- as.factor(video$category_id)

1.5 Merubah kolom integer menjadi numeric

# Merubah kolom integer menjadi numeric
video[ , c("views", "likes", "dislikes", "comment_count")] <- 
  lapply(video[ , c("views", "likes", "dislikes", "comment_count")], 
       as.numeric )

2.Visualisasi