Data-data game ini memiliki potensi yang dapat kita rekomendasikan sebagai game terlaris. Pada dokumen ini dibuat beberapa contoh visualisasi dari data-data game ps4 yang mudah-mudahan dapat memberikan sedikit gambaran manfaat visualisasi sebagai bahan untuk mendownload game yang sedang booming.
Beberapa visualisasi yang akan di tampilkan di antaranya adalah :
Harus diakui pada projek kali ini data yang dibuat sedetail mungkin, agar ketika ingin menganalisis dan mengevaluasi lebih jauh, data-data sudah siap untuk diproses.
Seperti biasa set up awal untuk mengeset format chunk pada markdown ini.
options(scipen = 9999)
rm(list=ls())Set up library yang akan digunakan
library(lubridate)##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
library(ggplot2)Proses mengimpor dataset ps4
ps4 <- read.csv("datainput/selling_ps4.csv")
head(ps4)Mengecek nama untuk tiap kolom pada data frame ps4
names(ps4)## [1] "Game" "Copies.sold" "Release.date.a." "Genre.s."
## [5] "Developer.s." "Publisher.s."
Mengecek struktur data frame ps4
str(ps4)## 'data.frame': 33 obs. of 6 variables:
## $ Game : chr "Marvel's Spider-Man" "God of War" "Uncharted 4: A Thief's End" "The Witcher 3: Wild Hunt" ...
## $ Copies.sold : chr "20 million" "19.5 million" "16 million" "10.8 million" ...
## $ Release.date.a.: chr "September 7, 2018" "April 20, 2018" "May 10, 2016" "May 18, 2015" ...
## $ Genre.s. : chr "Action-adventure" "Action-adventure hack and slash" "Action-adventure" "Action role-playing" ...
## $ Developer.s. : chr "Insomniac Games" "Santa Monica Studio" "Naughty Dog" "CD Projekt Red" ...
## $ Publisher.s. : chr "Sony Interactive Entertainment" "Sony Interactive Entertainment" "Sony Interactive Entertainment" "CD Projekt" ...
Setelah kita berhasil memasukkan data-data ps4 tersebut, tahap pertama adalah melakukan perubahan format pada element-element dalam data frame sehingga sesuai dengan isi data tersebut atau sesuai untuk keperluan processing nantinya. Pertama kita bisa melihat bahwa kolom Release.date yang berisi date yang ada dalam ps4 masih berupa character. Date tersebut akan kita rubah menjadi bertipe date MDY dengan cara sebagai berikut.
Tipe kolom App pada data frame gplay sebelum di konversi
class(ps4$Release.date.a.)## [1] "character"
Merubah kolom ps4$Release.date.a. menjadi date MDY
ps4$Release.date.a. <- as.Date(mdy(ps4$Release.date.a.))Merubah kolom ps4$Copies.sold menjadi numerik
ps4$Copies.sold <- as.numeric(gsub(" million", "", ps4$Copies.sold))
ps4$Copies.sold <- ps4$Copies.sold * 1000000str(ps4)## 'data.frame': 33 obs. of 6 variables:
## $ Game : chr "Marvel's Spider-Man" "God of War" "Uncharted 4: A Thief's End" "The Witcher 3: Wild Hunt" ...
## $ Copies.sold : num 20000000 19500000 16000000 10800000 10000000 10000000 10000000 9730000 8420000 8000000 ...
## $ Release.date.a.: Date, format: "2018-09-07" "2018-04-20" ...
## $ Genre.s. : chr "Action-adventure" "Action-adventure hack and slash" "Action-adventure" "Action role-playing" ...
## $ Developer.s. : chr "Insomniac Games" "Santa Monica Studio" "Naughty Dog" "CD Projekt Red" ...
## $ Publisher.s. : chr "Sony Interactive Entertainment" "Sony Interactive Entertainment" "Sony Interactive Entertainment" "CD Projekt" ...
Tipe kolom App pada data frame ps4 setelah di konversi menjadi date MDY dan numerik
class(ps4$Release.date.a.)## [1] "Date"
Mengecek 10 baris pertama dari kolom App yang sudah kita ubah
head(ps4$Release.date.a., 10)## [1] "2018-09-07" "2018-04-20" "2016-05-10" "2015-05-18" "2020-06-19"
## [6] "2017-02-28" "2014-07-29" "2020-07-17" "2015-11-17" "2017-10-17"
Melihat 1 contoh penerbit yang pertama kali muncul dan terduplikasi lebih dari 4 kali
ps4_dplct <- as.data.frame(table(ps4$Publisher.s.))
ps4_dplctsubset(ps4_dplct, ps4_dplct$Freq > 4)[1,]Melihat aplikasi tersebut pada data frame ps4
subset(ps4, ps4$Publisher.s. %in% (subset(ps4_dplct, ps4_dplct$Freq > 4,1)[1,]) )Pada contoh di atas kita mendapatkan Publisher bernama “Sony Computer Entertainment” yang terduplikasi sebanyak 7 kali. Dari data tersebut maka dapat kita simpulkan aplikasi “Sony Computer Entertainment” dalam semua parameter memiliki perbedaan, Oleh karena itu kita tidak bisa menghapus data-data duplikasi tersebut menggunakan fungsi “unique”.
Mendeteksi NaN pada data frame ps4
colSums(is.na(ps4))## Game Copies.sold Release.date.a. Genre.s. Developer.s.
## 0 0 0 0 0
## Publisher.s.
## 0
Mencari kolom-kolom yang memiliki elemen kosong
colSums(ps4 == "")## Game Copies.sold Release.date.a. Genre.s. Developer.s.
## 0 0 NA 0 0
## Publisher.s.
## 0
Melihat persebaran aplikasi berdasarkan game di ps4
head(ps4, 10)ps4_agg <- aggregate(x = Copies.sold ~ Game + Release.date.a.,
data = ps4,
FUN = sum)
head(ps4_agg)ggplot(data = ps4_agg, mapping = aes(x = Copies.sold, y = reorder(Game, Copies.sold))) +
geom_col(aes(fill = Release.date.a.), position = "stack")Grafik di atas menggambarkan sebaran game yang terlaris berdasarkan jenis game. Antara tahun 2018 sampai dengan tahun 2020 menunjukan bahwa popularitas gamers meningkat dengan nama game “Marvel’s Spider-Man”.
ps4_Genre <- aggregate(Copies.sold ~ Genre.s.,
data = ps4,
FUN = sum)
ps4_Genreggplot(data = ps4_Genre, mapping = aes(x = Copies.sold, y = reorder(Genre.s., Copies.sold))) +
geom_col(aes(fill = Copies.sold)) +
geom_vline(aes(xintercept = mean(Copies.sold)), lwd = 1, color = "pink") +
scale_fill_gradient(low = "grey", high = "navy")Grafik di atas menggambarkan sebaran genre game yang terlaris adalah jenis genre game “Action-adventure”. Secara rata-rata untuk copies.sold nya berada diangka 10,2M dan untuk total copies.sold tertinggi diangka 40,4M.