The Overview:

The goal of this assignment is to create and analyze a survey of six movies and add the data to SQL database where we implement the data from a secure password host to the R markdown. the finding of this report is analyzing the movies and find out which one has the most rating.

I conducted the survey by asking friends and coworkers about the six movies, some of them have seen most of the movies and some saw only few of the movies.

I uploaded the files the Github and you can find the Github

And you can check the files on Github

And the Rpubs

Loading packages

library(RMySQL)
library(ggplot2)
library(dplyr)

getting the row data for csv files saved in Github

urlA <- "https://raw.githubusercontent.com/akarimhammoud/607-Data-Acquisition-and-Management-CUNY-SPS-Fall2020/master/Week%202%20R%20and%20SQL/Data/Week%202%20movie_data.csv"

urlB <- "https://raw.githubusercontent.com/akarimhammoud/607-Data-Acquisition-and-Management-CUNY-SPS-Fall2020/master/Week%202%20R%20and%20SQL/Data/Week2_people.csv"
 
rating <- read.csv(urlA, header = TRUE, sep = ",")
rating
##   ID People Frozen.2 Murder.Mystery Moana Joker The.Big.Kick Get.out
## 1  1  Alice        5              4     5    NA            3       4
## 2  2   Tony        4              3     3     4           NA       5
## 3  3    Zen        5              2     5     5            1       5
## 4  4  Majed       NA              5    NA     5            2       3
## 5  5   Gary       NA              4    NA     4            3       3
people <- read.csv(urlB, header = TRUE, sep = ",")
people
##   ID People    sex relationship
## 1  1  Alice female       friend
## 2  2   Tony   male     coworker
## 3  3    Zen female   girlfriend
## 4  4  Majed   male       friend
## 5  5   Gary   male     coworker

Establish Connection

Connect to MySql on Google Cloud host

conn <- dbConnect(MySQL(),
                 user="root", password= "dav",
                 dbname="data607", host= "35.188.162.1")
summary(conn)
## <MySQLConnection:0,0>
##   User:   root 
##   Host:   35.188.162.1 
##   Dbname: data607 
##   Connection type: 35.188.162.1 via TCP/IP 
## 
## Results:

Creating Tables

Creating table for rating and people on MySql

dbWriteTable(conn, 'rating', rating, overwrite = TRUE)
## [1] TRUE

Creating table for the people

dbWriteTable(conn, 'people', people, overwrite = TRUE)
## [1] TRUE

Check the tables in the database

I will mainly use the movies database

dbListTables(conn);
## [1] "people" "rating"

Create join the tables using Query

join the rating and people tables and getting the data

data <- dbGetQuery(conn, 'select * from rating 
                  inner join people on rating.ID = people.ID;')
data
##   row_names ID People Frozen.2 Murder.Mystery Moana Joker The.Big.Kick Get.out
## 1         1  1  Alice        5              4     5    NA            3       4
## 2         2  2   Tony        4              3     3     4           NA       5
## 3         3  3    Zen        5              2     5     5            1       5
## 4         4  4  Majed       NA              5    NA     5            2       3
## 5         5  5   Gary       NA              4    NA     4            3       3
##   row_names ID People    sex relationship
## 1         1  1  Alice female       friend
## 2         2  2   Tony   male     coworker
## 3         3  3    Zen female   girlfriend
## 4         4  4  Majed   male       friend
## 5         5  5   Gary   male     coworker

We get rid of the duplicate columns

data <- data[, !duplicated(colnames(data))]
data
##   row_names ID People Frozen.2 Murder.Mystery Moana Joker The.Big.Kick Get.out
## 1         1  1  Alice        5              4     5    NA            3       4
## 2         2  2   Tony        4              3     3     4           NA       5
## 3         3  3    Zen        5              2     5     5            1       5
## 4         4  4  Majed       NA              5    NA     5            2       3
## 5         5  5   Gary       NA              4    NA     4            3       3
##      sex relationship
## 1 female       friend
## 2   male     coworker
## 3 female   girlfriend
## 4   male       friend
## 5   male     coworker

Calculating the mean average of rating for the movies, and considering there are NA

movies <- subset(data, select = c(Frozen.2, Murder.Mystery, Moana, Joker, The.Big.Kick, Get.out))

movies <- colMeans(movies, na.rm = TRUE, dims = 1)

movies
##       Frozen.2 Murder.Mystery          Moana          Joker   The.Big.Kick 
##       4.666667       3.600000       4.333333       4.500000       2.250000 
##        Get.out 
##       4.000000

Display the data on a bar chart

After pulling the average rating for each movie we present the data on the chart

par(mar=c(5,2,2,0))

barplot(movies, main="Movies Rating", xlab="Movies", ylim=c(0,6), horiz=FALSE,cex.lab=1 , col= c("lightcyan","mistyrose","beige","yellow","red","green"), names.arg=c("Frozen 2", "MurderMystery", "Moana", "Joker", "The Big Kick", "Get out" ))

Conclusion:

As we see in the barchart, the movies Frozen 2 and Joker got the highest average rating evethough Frozen2 had been watched only by 3 people, while Joker had been watched by all of the people in the rating list. on the other side The Big Sick movie got the worst rating of around only 2 out of 5 and it was watched by 4 people, it seems like they didn’t enjoy it a lot.

Thanks, Karim Hammoud

LS0tCnRpdGxlOiAiV2VlayAyIEFzc2lnbm1lbnQg4oCTIFNRTCBhbmQgUiIKYXV0aG9yOiAiS2FyaW0gSGFtbW91ZCIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgIG9wZW5pbnRybzo6bGFiX3JlcG9ydDogZGVmYXVsdAoKLS0tCgojIyBUaGUgT3ZlcnZpZXc6CgpUaGUgZ29hbCBvZiB0aGlzIGFzc2lnbm1lbnQgaXMgdG8gY3JlYXRlIGFuZCBhbmFseXplIGEgc3VydmV5IG9mIHNpeCBtb3ZpZXMgYW5kIGFkZCB0aGUgZGF0YSB0byBTUUwgZGF0YWJhc2Ugd2hlcmUgd2UgaW1wbGVtZW50IHRoZSBkYXRhIGZyb20gYSBzZWN1cmUgcGFzc3dvcmQgaG9zdCB0byB0aGUgUiBtYXJrZG93bi4gdGhlIGZpbmRpbmcgb2YgdGhpcyByZXBvcnQgaXMgYW5hbHl6aW5nIHRoZSBtb3ZpZXMgYW5kIGZpbmQgb3V0IHdoaWNoIG9uZSBoYXMgdGhlIG1vc3QgcmF0aW5nLgoKCkkgY29uZHVjdGVkIHRoZSBzdXJ2ZXkgYnkgYXNraW5nIGZyaWVuZHMgYW5kIGNvd29ya2VycyBhYm91dCB0aGUgc2l4IG1vdmllcywgc29tZSBvZiB0aGVtIGhhdmUgc2VlbiBtb3N0IG9mIHRoZSBtb3ZpZXMgYW5kIHNvbWUgc2F3IG9ubHkgZmV3IG9mIHRoZSBtb3ZpZXMuCgpJIHVwbG9hZGVkIHRoZSBmaWxlcyB0aGUgR2l0aHViIGFuZCB5b3UgY2FuIGZpbmQgdGhlIFtHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9ha2FyaW1oYW1tb3VkLzYwNy1EYXRhLUFjcXVpc2l0aW9uLWFuZC1NYW5hZ2VtZW50LUNVTlktU1BTLUZhbGwyMDIwL2Jsb2IvbWFzdGVyL1dlZWslMjAyJTIwUiUyMGFuZCUyMFNRTC9EYXRhL1dlZWslMjAyJTIwbW92aWVfZGF0YS5jc3YpCgpBbmQgeW91IGNhbiBjaGVjayB0aGUgZmlsZXMgb24gCltHaXRodWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9ha2FyaW1oYW1tb3VkLzYwNy1EYXRhLUFjcXVpc2l0aW9uLWFuZC1NYW5hZ2VtZW50LUNVTlktU1BTLUZhbGwyMDIwL3RyZWUvbWFzdGVyL1dlZWslMjAyJTIwUiUyMGFuZCUyMFNRTCkKCkFuZCB0aGUgW1JwdWJzXShodHRwczovL3JwdWJzLmNvbS9rYXJpbTdtb2QvNjU4ODM2KQoKCiMjIExvYWRpbmcgcGFja2FnZXMKCmBgYHtyIGxvYWQtcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0V9CmxpYnJhcnkoUk15U1FMKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZHBseXIpCmBgYAoKIyMgZ2V0dGluZyB0aGUgcm93IGRhdGEgZm9yIGNzdiBmaWxlcyBzYXZlZCBpbiBHaXRodWIKYGBge3J9CnVybEEgPC0gImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ha2FyaW1oYW1tb3VkLzYwNy1EYXRhLUFjcXVpc2l0aW9uLWFuZC1NYW5hZ2VtZW50LUNVTlktU1BTLUZhbGwyMDIwL21hc3Rlci9XZWVrJTIwMiUyMFIlMjBhbmQlMjBTUUwvRGF0YS9XZWVrJTIwMiUyMG1vdmllX2RhdGEuY3N2IgoKdXJsQiA8LSAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FrYXJpbWhhbW1vdWQvNjA3LURhdGEtQWNxdWlzaXRpb24tYW5kLU1hbmFnZW1lbnQtQ1VOWS1TUFMtRmFsbDIwMjAvbWFzdGVyL1dlZWslMjAyJTIwUiUyMGFuZCUyMFNRTC9EYXRhL1dlZWsyX3Blb3BsZS5jc3YiCiAKcmF0aW5nIDwtIHJlYWQuY3N2KHVybEEsIGhlYWRlciA9IFRSVUUsIHNlcCA9ICIsIikKcmF0aW5nCgpwZW9wbGUgPC0gcmVhZC5jc3YodXJsQiwgaGVhZGVyID0gVFJVRSwgc2VwID0gIiwiKQpwZW9wbGUKYGBgCgoKIyMgRXN0YWJsaXNoIENvbm5lY3Rpb24KCkNvbm5lY3QgdG8gTXlTcWwgb24gR29vZ2xlIENsb3VkIGhvc3QKCmBgYHtyfQpjb25uIDwtIGRiQ29ubmVjdChNeVNRTCgpLAogICAgICAgICAgICAgICAgIHVzZXI9InJvb3QiLCBwYXNzd29yZD0gImRhdiIsCiAgICAgICAgICAgICAgICAgZGJuYW1lPSJkYXRhNjA3IiwgaG9zdD0gIjM1LjE4OC4xNjIuMSIpCnN1bW1hcnkoY29ubikKYGBgCgoKIyMgQ3JlYXRpbmcgVGFibGVzCgpDcmVhdGluZyB0YWJsZSBmb3IgcmF0aW5nIGFuZCBwZW9wbGUgb24gTXlTcWwKCmBgYHtyfQpkYldyaXRlVGFibGUoY29ubiwgJ3JhdGluZycsIHJhdGluZywgb3ZlcndyaXRlID0gVFJVRSkKYGBgCgpDcmVhdGluZyB0YWJsZSBmb3IgdGhlIHBlb3BsZSAKCmBgYHtyfQpkYldyaXRlVGFibGUoY29ubiwgJ3Blb3BsZScsIHBlb3BsZSwgb3ZlcndyaXRlID0gVFJVRSkKYGBgCgojIyMgQ2hlY2sgdGhlIHRhYmxlcyBpbiB0aGUgZGF0YWJhc2UKCkkgd2lsbCBtYWlubHkgdXNlIHRoZSBtb3ZpZXMgZGF0YWJhc2UKCmBgYHtyfQpkYkxpc3RUYWJsZXMoY29ubik7CmBgYAoKIyMgQ3JlYXRlIGpvaW4gdGhlIHRhYmxlcyB1c2luZyBRdWVyeQpqb2luIHRoZSByYXRpbmcgYW5kIHBlb3BsZSB0YWJsZXMgYW5kIGdldHRpbmcgdGhlIGRhdGEKCmBgYHtyfQpkYXRhIDwtIGRiR2V0UXVlcnkoY29ubiwgJ3NlbGVjdCAqIGZyb20gcmF0aW5nIAogICAgICAgICAgICAgICAgICBpbm5lciBqb2luIHBlb3BsZSBvbiByYXRpbmcuSUQgPSBwZW9wbGUuSUQ7JykKZGF0YQpgYGAKCldlIGdldCByaWQgb2YgdGhlIGR1cGxpY2F0ZSBjb2x1bW5zCgpgYGB7cn0KZGF0YSA8LSBkYXRhWywgIWR1cGxpY2F0ZWQoY29sbmFtZXMoZGF0YSkpXQpkYXRhCmBgYAoKQ2FsY3VsYXRpbmcgdGhlIG1lYW4gYXZlcmFnZSBvZiByYXRpbmcgZm9yIHRoZSBtb3ZpZXMsIGFuZCBjb25zaWRlcmluZyB0aGVyZSBhcmUgTkEgCmBgYHtyfQptb3ZpZXMgPC0gc3Vic2V0KGRhdGEsIHNlbGVjdCA9IGMoRnJvemVuLjIsIE11cmRlci5NeXN0ZXJ5LCBNb2FuYSwgSm9rZXIsIFRoZS5CaWcuS2ljaywgR2V0Lm91dCkpCgptb3ZpZXMgPC0gY29sTWVhbnMobW92aWVzLCBuYS5ybSA9IFRSVUUsIGRpbXMgPSAxKQoKbW92aWVzCmBgYAoKCgojIyBEaXNwbGF5IHRoZSBkYXRhIG9uIGEgYmFyIGNoYXJ0CgpBZnRlciBwdWxsaW5nIHRoZSBhdmVyYWdlIHJhdGluZyBmb3IgZWFjaCBtb3ZpZSB3ZSBwcmVzZW50IHRoZSBkYXRhIG9uIHRoZSBjaGFydAoKYGBge3J9CnBhcihtYXI9Yyg1LDIsMiwwKSkKCmJhcnBsb3QobW92aWVzLCBtYWluPSJNb3ZpZXMgUmF0aW5nIiwgeGxhYj0iTW92aWVzIiwgeWxpbT1jKDAsNiksIGhvcml6PUZBTFNFLGNleC5sYWI9MSAsIGNvbD0gYygibGlnaHRjeWFuIiwibWlzdHlyb3NlIiwiYmVpZ2UiLCJ5ZWxsb3ciLCJyZWQiLCJncmVlbiIpLCBuYW1lcy5hcmc9YygiRnJvemVuIDIiLCAiTXVyZGVyTXlzdGVyeSIsICJNb2FuYSIsICJKb2tlciIsICJUaGUgQmlnIEtpY2siLCAiR2V0IG91dCIgKSkKYGBgCgojIyBDb25jbHVzaW9uOgoKQXMgd2Ugc2VlIGluIHRoZSBiYXJjaGFydCwgdGhlIG1vdmllcyBGcm96ZW4gMiBhbmQgSm9rZXIgZ290IHRoZSBoaWdoZXN0IGF2ZXJhZ2UgcmF0aW5nIGV2ZXRob3VnaCBGcm96ZW4yIGhhZCBiZWVuIHdhdGNoZWQgb25seSBieSAzIHBlb3BsZSwgd2hpbGUgSm9rZXIgaGFkIGJlZW4gd2F0Y2hlZCBieSBhbGwgb2YgdGhlIHBlb3BsZSBpbiB0aGUgcmF0aW5nIGxpc3QuIG9uIHRoZSBvdGhlciBzaWRlIFRoZSBCaWcgU2ljayBtb3ZpZSBnb3QgdGhlIHdvcnN0IHJhdGluZyBvZiBhcm91bmQgb25seSAyIG91dCBvZiA1IGFuZCBpdCB3YXMgd2F0Y2hlZCBieSA0IHBlb3BsZSwgaXQgc2VlbXMgbGlrZSB0aGV5IGRpZG4ndCBlbmpveSBpdCBhIGxvdC4KClRoYW5rcywKS2FyaW0gSGFtbW91ZAo=