Created
February 5, 2017 04:51
-
-
Save DraceZhan/02bce3d52081639dd36614b869aff1e6 to your computer and use it in GitHub Desktop.
Video Game Sales as of 12/16 data analysis
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#load libraries needed | |
#install.packages(c("wordcloud","tm"),repos="http://cran.r-project.org") | |
#devtools::install_github("ricardo-bion/ggradar", dependencies=TRUE) | |
library(wordcloud) | |
library(tm) | |
library(tidyr) | |
library(dplyr) | |
library(ggplot2) | |
library(corrplot) | |
library(ggradar) | |
library(scales) | |
# read the data from | |
VGdata = read.csv('Video_Games_Sales_Dec_2016.csv', stringsAsFactors = F) | |
#verify data structure and summary | |
summary(VGdata) | |
str(VGdata) | |
VGdata[c(2,4,5,15,16)] <- lapply(VGdata[c(2,4,5,15,16)], factor) | |
VGdata[3] <- lapply(VGdata[3], as.numeric) | |
sony<-c('PS','PS2','PS3','PS4' ,'PSP','PSV') | |
microsoft<-c('PC','X360','XB','XOne') | |
nintendo<-c('3DS','DS','GBA','GC','N64','Wii','WiiU', 'GB', 'GBA', 'GC', 'NES', 'N64', 'SNES') | |
sega<-c('DC', 'SAT', 'GEN', 'GG', 'SCD') | |
PC<-c('2600', '3DO') | |
companyFunc<-function(x){ | |
if (x %in% sony == TRUE) {return('SONY')} | |
else if(x %in% microsoft == TRUE) {return('MICROSOFT')} | |
else if(x %in% nintendo == TRUE) {return('NINTENDO')} | |
else if(x %in% sega == TRUE) {return('SEGA')} | |
else{return('OTHER')} | |
} | |
VGdata$companyPlatform<-sapply(VGdata$Platform, companyFunc) | |
colnames(VGdataCor) = c( | |
'NA Sales', 'EU Sales', 'Japan Sales', 'Other Sales', 'Critic Score', 'Global Sales', | |
'Total Critic Reviews', 'User Score', 'Total User Score') | |
rownames(VGdataCor) = c( | |
'NA Sales', 'EU Sales', 'Japan Sales', 'Other Sales', 'Critic Score', 'Global Sales', | |
'Total Critic Reviews', 'User Score', 'Total User Score') | |
#converting int columns to numerics in order to run a correlation matrix | |
VGdata[c(6:14)] <- lapply(VGdata[c(6:14)], as.numeric) | |
VGdataCor = cor(VGdata[,6:14], use="pairwise.complete.obs") | |
corrplot(VGdataCor, method = 'circle') #looks ugly ask why | |
#We see that sales between regions correlate with each other positively but Japan's sales seem less correlated than other regions. | |
#From this we can infer that games that appeal to the Japanese market aren't necessarily the same as NA, EU & other regions | |
VGdata$Critic_Score = VGdata$Critic_Score/10 | |
#Let's examine mean score according to genre | |
genreAvgScore = VGdata %>% group_by(Genre) %>% summarise(avgUser = mean(User_Score, na.rm = T), avgCritic = mean(Critic_Score, na.rm = T)) | |
genreAvgScore = genreAvgScore[-1,] | |
genreAvgScore = genreAvgScore %>% gather(key = 'type', value = 'scores', 2:3) | |
ggplot(VGdata, aes(x=Critic_Score, y=NA_Sales | |
)) +geom_point(aes(color = Genre)) + geom_smooth() + ylim(c(0,15)) | |
Avgplot = ggplot(genreAvgScore, aes(x=Genre, y=scores, fill = type)) + geom_bar(stat='identity', position = 'dodge') | |
JP.NA.salesPlot = ggplot(VGdata, aes(x = JP_Sales, y= NA_Sales)) + geom_point(aes(color=Genre)) | |
JP.NA.salesPlot | |
#we see that outliers create issues in the visualization | |
JP.NA.salesPlot + xlim(c(0,2))+ylim(c(0,5)) | |
JP.NA.salesPlot + xlim(c(0,1))+ylim(c(0,3)) | |
JP.EU.SalesPlot = ggplot(VGdata, aes(x = JP_Sales, y= EU_Sales)) + geom_point(aes(color=Genre)) | |
JP.EU.SalesPlot + xlim(c(0,5)) + ylim(c(0,2.5)) | |
NA.EU.SalesPlot = ggplot(VGdata, aes(x = NA_Sales, y=EU_Sales)) + geom_point(aes(color=Genre)) | |
NA.EU.SalesPlot + xlim(c(0,5)) + ylim(c(0,7.5)) | |
#what is the best selling genre & platform by year of release? Most popular? | |
YearGrp = VGdata %>% group_by(Year_of_Release, Genre) %>% summarise(total.genre.sales = sum(Global_Sales)) | |
YearMaxGrp = YearGrp %>% group_by(Year_of_Release) %>% slice(which.max(total.genre.sales)) | |
YearTopTwoGenre = YearGrp %>% group_by(Year_of_Release) %>%top_n(2) | |
ggplot(YearTopMaxGrp, aes(x=Year_of_Release, y=total.genre.sales)) + geom_bar(stat='Identity', aes(fill=Genre)) | |
YearGrpPlat = VGdata %>% group_by(Year_of_Release, Platform) %>% summarise(total.plat.sales = sum(Global_Sales)) | |
YearMaxPlat = YearGrpPlat %>% group_by(Year_of_Release) %>%slice(which.max(total.plat.sales)) | |
YearTopTwoPlat = YearGrpPlat %>% group_by(Year_of_Release) %>%top_n(2) | |
ggplot(YearTopTwoPlat, aes(x=Year_of_Release, y=total.plat.sales)) + geom_bar(stat='Identity', position = 'dodge', aes(fill=Platform)) | |
#Word Cloud | |
BestSeller = VGdata %>% group_by(Year_of_Release) %>% filter(Global_Sales==max(Global_Sales)) %>% arrange(Year_of_Release) | |
BestSeller$Genre = as.factor(BestSeller$Genre) | |
YearMaxGrp$Genre = as.factor(YearMaxGrp$Genre) | |
BestSeller$Name = gsub('Pokémon', 'Pokemon', BestSeller$Name) | |
BestSeller$Name = gsub('/', ' ', BestSeller$Name) | |
BestSeller$Name = gsub('-', '', BestSeller$Name) | |
BestSeller$Name = gsub(':', ' ', BestSeller$Name) | |
BestSellerCorpus = Corpus(VectorSource(BestSeller$Name)) | |
BestSellerCorpus = tm_map(BestSellerCorpus, content_transformer(tolower)) | |
BestSellerCorpus = tm_map(BestSellerCorpus, removeWords, stopwords('english')) | |
BestSellerM = TermDocumentMatrix(BestSellerCorpus) | |
BestSellerM = as.matrix(BestSellerM) | |
colnames(BestSellerM) = BestSeller$Genre | |
BestSellerM = t(rowsum(t(BestSellerM), group = rownames(t(BestSellerM)))) | |
#darker colors = more frequent | |
comparison.cloud(BestSellerM, colors=brewer.pal(length(levels(BestSeller$Genre)), "Paired"), scale=c(3,0.5), title.size = 1) | |
#trends of sales by region | |
tot_region_sales = VGdata %>% group_by(Year_of_Release) %>% summarise(tot_NA_sales = sum( | |
NA_Sales), tot_EU_sales = sum(EU_Sales), tot_JP_sales = sum(JP_Sales)) | |
ggplot(data = tot_region_sales, aes(x = Year_of_Release)) + geom_line(aes(y=tot_NA_sales, colour = 'NA Sales'))+ geom_line( | |
aes(y=tot_EU_sales, colour = 'EU Sales')) + geom_line(aes(y=tot_JP_sales, colour = 'JP Sales')) | |
#Console Companies | |
bigThree = VGdata %>% group_by(companyPlatform) %>% summarise(Total_Sales = sum(Global_Sales), Total_Users = sum(User_Count, na.rm = T), | |
'NA Sales' = sum(NA_Sales), | |
'EU Sales' = sum(EU_Sales), | |
'JP Sales' = sum(JP_Sales), | |
'Other Sales' = sum(Other_Sales)) | |
ggplot(bigThree, aes(factor(1), y=Total_Sales, fill = factor(companyPlatform))) + geom_bar(stat = 'Identity')+ coord_polar(theta='y') | |
ggplot(bigThree, aes(factor(1), y=Total_Users, fill = factor(companyPlatform))) + geom_bar(stat = 'Identity')+ coord_polar(theta='y') | |
#A look into the data shows that NA's | |
companyNoRecUsers = VGdata%>%group_by(companyPlatform) %>% slice(which(is.na(User_Count))) | |
companyNoRecUsers =companyNoRecUsers %>% group_by(companyPlatform) %>% summarise_each(funs(sum), one_of(c('NA_Sales', 'EU_Sales', 'Global_Sales', 'JP_Sales', 'Other_Sales'))) | |
companyNaNSums = VGdata %>% group_by(companyPlatform) %>% count(companyPlatform) | |
companyNoRecUsers = merge(companyNoRecUsers, companyNaNSums) | |
colnames(companyNoRecUsers)[7] = 'Total_Missing_UserCounts' | |
companyNoRecUsers[1] = lapply(companyNoRecUsers[1], factor) | |
ggplot(companyNoRecUsers, aes(x=companyPlatform, y=Total_Missing_UserCounts, fill = companyPlatform)) + geom_bar( | |
stat = 'identity') | |
#Consoles per Region | |
#scaled_bigThree = bigThree %>% mutate(Total_NA_Sales = Total_NA_Sales/sum(Total_NA_Sales), Total_EU_Sales = Total_EU_Sales/sum(Total_EU_Sales),Total_JP_Sales = Total_JP_Sales/sum(Total_JP_Sales), Total_Other_Sales = Total_Other_Sales/sum(Total_Other_Sales)) | |
scaled_bigThree = bigThree %>% mutate_each(funs(rescale), -companyPlatform) %>% select(-Total_Sales, -Total_Users) | |
ggradar(scaled_bigThree) | |
ggplot(VGdata, aes(x=Critic_Score, y=NA_Sales)) +geom_point( | |
aes_string(color = 'Genre')) + geom_smooth() + ylim(c(0,15)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#load libraries needed | |
#install.packages(c("wordcloud","tm"),repos="http://cran.r-project.org") | |
#devtools::install_github("ricardo-bion/ggradar", dependencies=TRUE) | |
library(wordcloud) | |
library(tm) | |
library(tidyr) | |
library(dplyr) | |
library(ggplot2) | |
library(corrplot) | |
library(Rttf2pt1) | |
library(ggradar) | |
library(scales) | |
library(shinydashboard) | |
library(RColorBrewer) | |
library(DT) | |
VGdata = read.csv('data\\Video_Games_Sales_Dec_2016.csv', stringsAsFactors = F) | |
#VGdata = read.csv('data/Video_Games_Sales_Dec_2016.csv', stringsAsFactors = F) for mac/linux deployment locally | |
VGdata[c(2,4,5,15,16)] <- lapply(VGdata[c(2,4,5,15,16)], factor) | |
VGdata[3] <- lapply(VGdata[3], as.numeric) | |
sony<-c('PS','PS2','PS3','PS4' ,'PSP','PSV') | |
microsoft<-c('PC','X360','XB','XOne') | |
nintendo<-c('3DS','DS','GBA','GC','N64','Wii','WiiU', 'GB', 'GBA', 'GC', 'NES', 'N64', 'SNES') | |
sega<-c('DC', 'SAT', 'GEN', 'GG', 'SCD') | |
PC<-c('2600', '3DO') | |
companyFunc<-function(x){ | |
if (x %in% sony == TRUE) {return('SONY')} | |
else if(x %in% microsoft == TRUE) {return('MICROSOFT')} | |
else if(x %in% nintendo == TRUE) {return('NINTENDO')} | |
else if(x %in% sega == TRUE) {return('SEGA')} | |
else{return('OTHER')} | |
} | |
VGdata$companyPlatform<-sapply(VGdata$Platform, companyFunc) | |
VGdata$Critic_Score = VGdata$Critic_Score/10 | |
VGdata[c(6:14)] <- lapply(VGdata[c(6:14)], as.numeric) | |
VGdataCor = cor(VGdata[,6:14], use="pairwise.complete.obs") | |
colnames(VGdataCor) = c( | |
'NA Sales', 'EU Sales', 'Japan Sales', 'Other Sales', 'Critic Score', 'Global Sales', | |
'Total Critic Reviews', 'User Score', 'Total User Score') | |
rownames(VGdataCor) = c( | |
'NA Sales', 'EU Sales', 'Japan Sales', 'Other Sales', 'Critic Score', 'Global Sales', | |
'Total Critic Reviews', 'User Score', 'Total User Score') | |
genreAvgScore = VGdata %>% group_by(Genre) %>% summarise(avgUser = mean(User_Score, na.rm = T), avgCritic = mean(Critic_Score, na.rm = T)) | |
genreAvgScore = genreAvgScore[-1,] | |
genreAvgScore = genreAvgScore %>% gather(key = 'type', value = 'scores', 2:3) | |
YearGrp = VGdata %>% group_by(Year_of_Release, Genre) %>% summarise(total.genre.sales = sum(Global_Sales)) | |
YearMaxGrp = YearGrp %>% group_by(Year_of_Release) %>% slice(which.max(total.genre.sales)) | |
YearTopTwoGenre = YearGrp %>% group_by(Year_of_Release) %>%top_n(2) | |
YearGrpPlat = VGdata %>% group_by(Year_of_Release, Platform) %>% summarise(total.plat.sales = sum(Global_Sales)) | |
YearMaxPlat = YearGrpPlat %>% group_by(Year_of_Release) %>%slice(which.max(total.plat.sales)) | |
YearTopTwoPlat = YearGrpPlat %>% group_by(Year_of_Release) %>%top_n(2) | |
BestSeller = VGdata %>% group_by(Year_of_Release) %>% filter(Global_Sales==max(Global_Sales)) %>% arrange(Year_of_Release) | |
BestSeller$Genre = as.factor(BestSeller$Genre) | |
YearMaxGrp$Genre = as.factor(YearMaxGrp$Genre) | |
BestSeller$Name = gsub('Pokémon', 'Pokemon', BestSeller$Name) | |
BestSeller$Name = gsub('/', ' ', BestSeller$Name) | |
BestSeller$Name = gsub('-', '', BestSeller$Name) | |
BestSeller$Name = gsub(':', ' ', BestSeller$Name) | |
BestSellerCorpus = Corpus(VectorSource(BestSeller$Name)) | |
BestSellerCorpus = tm_map(BestSellerCorpus, content_transformer(tolower)) | |
BestSellerCorpus = tm_map(BestSellerCorpus, removeWords, stopwords('english')) | |
BestSellerM = TermDocumentMatrix(BestSellerCorpus) | |
BestSellerM = as.matrix(BestSellerM) | |
colnames(BestSellerM) = BestSeller$Genre | |
BestSellerM = t(rowsum(t(BestSellerM), group = rownames(t(BestSellerM)))) | |
tot_region_sales = VGdata %>% group_by(Year_of_Release) %>% summarise(tot_NA_sales = sum( | |
NA_Sales), tot_EU_sales = sum(EU_Sales), tot_JP_sales = sum(JP_Sales)) | |
bigThree = VGdata %>% group_by(companyPlatform) %>% summarise(Total_Sales = sum(Global_Sales), Total_Users = sum(User_Count, na.rm = T), | |
'NA' = sum(NA_Sales), | |
'EU' = sum(EU_Sales), | |
'JP' = sum(JP_Sales), | |
'Other' = sum(Other_Sales)) | |
scaled_bigThree = bigThree %>% mutate_each(funs(rescale), -companyPlatform) %>% select(-Total_Sales, -Total_Users) | |
companyNoRecUsers = VGdata%>%group_by(companyPlatform) %>% slice(which(is.na(User_Count))) | |
companyNoRecUsers =companyNoRecUsers %>% group_by(companyPlatform) %>% summarise_each(funs(sum), one_of(c('NA_Sales', 'EU_Sales', 'Global_Sales', 'JP_Sales', 'Other_Sales'))) | |
companyNaNSums = VGdata %>% group_by(companyPlatform) %>% count(companyPlatform) | |
companyNoRecUsers = merge(companyNoRecUsers, companyNaNSums) | |
colnames(companyNoRecUsers)[7] = 'Total_Missing_UserCounts' | |
companyNoRecUsers[1] = lapply(companyNoRecUsers[1], factor) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shinyServer(function(input, output) ({ | |
output$corr <- renderPlot({corrplot(VGdataCor, method = 'pie', order = 'hclust') | |
}) | |
output$score <- renderPlot({ggplot(VGdata, aes_string(x=input$rate, y=input$sale)) +geom_point( | |
aes(color = Genre)) + geom_smooth() + ylim(c(0,15)) + ggtitle("Review Scores versus Unit Sales(in millions)")}) | |
output$regSale<- renderPlot({ggplot(VGdata, aes_string( | |
x = input$reg1, y= input$reg2)) + geom_point(aes(color=Genre)) +geom_smooth()}) | |
output$avgGscore <- renderPlot({ggplot(genreAvgScore, aes(x=Genre, y=scores, fill = type, group =type)) + geom_bar( | |
stat='identity', position = 'dodge') + ggtitle('Average Genre Review Scores')}) | |
output$wordc <- renderPlot({comparison.cloud(BestSellerM, colors=brewer.pal(length(levels(BestSeller$Genre)), "Paired"), scale=c(3,0.5), title.size = 1)}) | |
output$ConsoleComp <- renderPlot({ggplot(bigThree, aes(x=factor(1), y=Total_Sales, fill = companyPlatform)) + geom_bar(stat = 'Identity')+ coord_polar(theta='y')+ theme(axis.title.y=element_blank(), | |
axis.text.y=element_blank(), | |
axis.ticks.y=element_blank(), | |
axis.ticks.x=element_blank(), | |
axis.text.x=element_blank())+ ggtitle('Distribution of Sales Across Regions') +ylab('Sales Distribution')}) | |
output$ConsoleComp1 <- renderPlot({ggplot(bigThree, aes(x=factor(1), y=Total_Users, fill = companyPlatform)) + geom_bar(stat = 'Identity')+ coord_polar(theta='y')+ theme(axis.title.y=element_blank(), | |
axis.text.y=element_blank(), | |
axis.ticks.y=element_blank(), | |
axis.ticks.x=element_blank(), | |
axis.text.x=element_blank()) + ggtitle('Users Count Across Regions')+ylab('Number of User Reviews')}) | |
output$topTwoGenre <- renderPlot({ggplot(YearTopTwoGenre, aes(x=Year_of_Release, y=total.genre.sales)) + geom_bar(stat='Identity', aes(fill=Genre))}) | |
output$topTwoPlat <- renderPlot({ggplot(YearTopTwoPlat, aes(x=Year_of_Release, y=total.plat.sales)) + geom_bar(stat='Identity', position = 'stack', aes(fill=Platform))+xlab( | |
'Year of Release') + ylab('Units Sold in Millions') + ggtitle('Top Two Console Games Sold')}) | |
output$YearRegionSales <-renderPlot({ggplot(data = tot_region_sales, aes(x = Year_of_Release)) + geom_line(aes(y=tot_NA_sales, colour = 'NA Sales'))+ geom_line(aes(y=tot_EU_sales, colour = 'EU Sales')) + geom_line(aes(y=tot_JP_sales, colour = 'JP Sales')) + xlab( | |
'Units sold in Millions') + ylab('Year of Release') + ggtitle('Regional Units Sold Comparison') | |
}) | |
output$radar <-renderPlot({ggradar(scaled_bigThree) + ggtitle('Regional Performance of Consoles')}) | |
output$table <-renderDataTable({ | |
datatable(VGdata, rownames=FALSE) %>% | |
formatStyle(input$selected, | |
background="skyblue", fontWeight='bold')}) | |
}) | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shinyUI(dashboardPage( | |
dashboardHeader(title = 'Analysis of Video Game Sales since 1980 to Dec 2016'), | |
dashboardSidebar( | |
sidebarUserPanel("Content"), | |
sidebarMenu( | |
menuItem("Intro", tabName = "markdown"), | |
menuItem("Correlation Matrix", tabName = "corr"), | |
menuItem("Genre Data Visualization", tabName = "Genre"), | |
menuItem("Best Seller Words by Genre", tabName = 'wordc'), | |
menuItem("Console Wars Sales", tabName = 'ConsoleComp'), | |
menuItem("Regional Yearly Sales", tabName = "YearRegionSales"), | |
menuItem("Do Ratings Affect Sales",tabName = 'score'), | |
menuItem("Regional Influence Total Sales", tabName = 'regSale'), | |
menuItem("Data", tabName = "data", icon = icon("database")) | |
) | |
), | |
dashboardBody( | |
tabItems( | |
tabItem(tabName = "markdown", h1(img(src="pic.jpg", height = 400)), | |
h1(class = 'text-muted','"He who fails to plan is planning to fail | |
", Churchill'), | |
p(paste("In 1970, Atari was an industry giant in Silicon Valley with one of the largest R&D Divisions. In 1983, they | |
played a large role in creating the video game crash and then became defunct in 1984. Nintendo was initially founded | |
as a card company but blossomed into the console industry when Gunpei Yokoi pioneered the handheld console in | |
Nintendo's Game&Watch series. Sixteen years later, he would also be responsible for one of their biggest console failures | |
in their Virtual Boy. In 1979, Sony produced the world's first portable music player, the Walkman. Expanding rapidly | |
through the electronics market, Sony was thought to be too big to fail. However, strings of commercial mistakes lead to a near | |
demise till Sony was saved by their Playstation 2, which has now reported to be the best selling console of all time. Now with the | |
entry of mobile apps into the video game market, it's up to the industry giants once again, to adapt or die.")), | |
p(paste("This app is an alpha project to look at various trends in the console gaming industry using Kaggle's Video Game Sales dataset."))), | |
tabItem(tabName = "corr", h2(plotOutput('corr')), | |
p(class = "text-muted",paste("The standard correlation matrix doesn't display anything unexpected. Most columns with | |
similar class data tend to correlate with each other. Pie chart method is used to give clarity on correlation coefficients." | |
))), | |
tabItem(tabName = "Genre", p(class = "text-muted", | |
paste('A common opinion is that critics tend to give more favorable reviews compared to users but we see critics score | |
and user score are fairly similar with the average user giving higher scores on average per genre than critics. | |
The only outlier is along the sports column where critics rate them higher than users do. Sports are also by | |
far the most likely genre to be franchised such as "Madden", "NFL", etc. where each edition only offers minor improvements. | |
For a critic where games are typically played for a smaller span of time, franchised series are judged mostly on individual | |
merit whereas users may not view paying for minor improvements to be justified to the same degree.' | |
), h1(plotOutput('avgGscore')), | |
p(class = "text-muted", | |
paste("Sales wise, desired genres follow very strong trends. In the earlier 80's and 90's, when technology aren't | |
as Sega's own mascot, Sonic the Hedgehog. Early shooters such as Asteroids and Space Invaders also did well in the | |
pre-8bit era. As technology progressed and systems became more powerful, we see a trend towards genres that | |
were able to demonstrate the more powerful graphics and engines. By 2000, action games took over the market | |
and never let up. Note that 2016's data hasn't been completely processed yet hence the lower numbers." | |
)),h1(plotOutput('topTwoGenre'))) | |
), | |
tabItem(tabName = "wordc", h1(plotOutput('wordc')), | |
paste('Word cloud of best selling words in title by Genre. Frequency of word is signified by color density.' | |
)), | |
tabItem(tabName = "ConsoleComp", p(class = "text-muted", | |
paste("The console wars started between Nintendo and Sega. While history should record that Nintendo was ultimately | |
victorious, the big stories since 2010 has been between Microsoft and Sony. However, as demonstrated by the radar plot, | |
Sony's global dominance in the console market carries them through. In addition, we see Japan's loyalty to the national | |
brand under Nintendo with Microsoft doing exceptionally poor in the region. In particular, we also notice Nintendo's dominance | |
from 2000 to 2008 due to the popularity of their portable consoles such as the Nintendo DS. They were overthrown by Sony's Playstation | |
as mobiles become increasingly the go to choice for small portable app based games. Current trends show Nintendo has yet to been unable to | |
wrest the console market from Sony")), | |
h1(plotOutput('radar')), | |
h1(plotOutput('topTwoPlat')), | |
p(paste('By examining the pie chart, it looks as if Sony and Nintendo are controlling equal shares of the market, one must remember that Nintendo | |
had a "head start". Since this pie chart is recording distribution of sales since 1980, one can conclude that Nintendo is actually losing market | |
shares to Sony and Microsoft. | |
')), | |
h1( | |
plotOutput('ConsoleComp')), | |
p(paste("There are also more reviews submitted for Microsoft's console games compared to reviews submitted from other console | |
companies. Given, that the reviews are mostly pulled from English speaking regions, there may also be correlation between Microsoft's | |
console performance in sales and whether or not the region speaks English. | |
")), h1(plotOutput('ConsoleComp1')) | |
), | |
tabItem(tabName = "YearRegionSales", fluidRow(box(width =12, plotOutput('YearRegionSales')))), | |
tabItem(tabName = "data","Data Base", fluidRow(box(width=12, DT::dataTableOutput("table")))), | |
tabItem(tabName = "score", fluidRow(box(width = 12, title = "Controls", | |
selectInput(inputId = "rate", | |
label = "Rated By", | |
choices = list("Critics Ratings" = "Critic_Score", | |
"Users Ratings" = "User_Score")), | |
selectInput(inputId = "sale", | |
label = "Regions", | |
choices = list("NA Sales" = "NA_Sales", | |
"EU Sales" = "EU_Sales", | |
"JP Sales" = "JP_Sales", | |
"Other Region Sales" = "Other_Sales", | |
"Global Sales" = "Global_Sales")), | |
h1(plotOutput('score'))))), | |
tabItem(tabName = "regSale", fluidRow(box(width =12, title="Regions", | |
selectInput(inputId = "reg1", | |
label = "Region 1", | |
choices = list("North America" = 'NA_Sales', | |
"Europe" = 'EU_Sales', | |
"Japan" = 'JP_Sales', | |
"other" = "Other_Sales", | |
"Global" = "Global_Sales")), | |
selectInput(inputId = "reg2", | |
label = "Region 2", | |
choices = list("North America" = 'NA_Sales', | |
"Europe" = 'EU_Sales', | |
"Japan" = 'JP_Sales', | |
"other" = "Other_Sales", | |
"Global" = "Global_Sales")))), | |
h1(plotOutput('regSale'))) | |
) | |
)) | |
) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Draft 1