library(tidyverse)
library(openintro)
library(DBI)
library(RMySQL)
TRANSFER DATA FROM SQL DATABASE TO R DATAFRAME
The following code is used to run a connection between the built
table that was stored in the class SQL database and this R dataframe.
Additionally I can confirm that the data is loaded in with the code in
line 25
## [1] "movieratings"
RETRIVE THE DATA
After running the connection to see if the data has successfully
loaded in, I will now demonstrate the printing/display of the table data
that had been built back in MySQL using the following code:
table_data <- dbGetQuery(con, "SELECT * FROM movieratings;")
print(table_data)
## ID MovieName RaterName Rating
## 1 1 Joker: Folie à Deux Matt 2
## 2 2 Joker: Folie à Deux Jesus 1
## 3 3 Joker: Folie à Deux Alex 2
## 4 4 Joker: Folie à Deux Albert 1
## 5 5 Joker: Folie à Deux Jeffery 1
## 6 6 Wicked Matt 1
## 7 7 Wicked Jesus 3
## 8 8 Wicked Alex 5
## 9 9 Wicked Albert 3
## 10 10 Wicked Jeffery 4
## 11 11 Sonic the Hedgehog 3 Matt 5
## 12 12 Sonic the Hedgehog 3 Jesus 4
## 13 13 Sonic the Hedgehog 3 Alex 4
## 14 14 Sonic the Hedgehog 3 Albert 3
## 15 15 Sonic the Hedgehog 3 Jeffery 4
## 16 16 The Substance Matt 4
## 17 17 The Substance Jesus 5
## 18 18 The Substance Alex 5
## 19 19 The Substance Albert 1
## 20 20 The Substance Jeffery 4
## 21 21 Moana 2 Matt 4
## 22 22 Moana 2 Jesus 5
## 23 23 Moana 2 Alex 2
## 24 24 Moana 2 Albert 1
## 25 25 Moana 2 Jeffery 2
## 26 26 Babygirl Matt 3
## 27 27 Babygirl Jesus 4
## 28 28 Babygirl Alex 4
## 29 29 Babygirl Albert 3
## 30 30 Babygirl Jeffery 3
Missing data strategy (for R)
In the following example, and reminiscent of last week’s code, I use
a code to remove all rows without any valid data or “NA.” This code is
effective approach to implement because removing all void rows keeps the
data overall concise and without any unnecessary data cluttering the
display.
cleaned_data <- table_data %>%
drop_na()
Missing data strategy (for SQL)
Additionally, here is code that would normally remove the “NA”
invalid values, or in this case, “null” in SQL. Displayed is a common
way to resolve this issue, similarly to the approach for R, involving
removing the unnecessary null values/invalid data. More specifically and
more realistically, from the Rating column.
DELETE FROM MovieRatings
WHERE Rating IS NULL;
…
LS0tDQp0aXRsZTogIkRBVEEgNjA3IFdlZWsgMiINCmF1dGhvcjogIkd1bGxpdCBOYXZhcnJldGUiDQpkYXRlOiAiMi85LzI1Ig0Kb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQNCi0tLQ0KDQpgYGB7ciBsb2FkLXBhY2thZ2VzLCBtZXNzYWdlPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KG9wZW5pbnRybykNCmxpYnJhcnkoREJJKQ0KbGlicmFyeShSTXlTUUwpDQpgYGANCg0KIyMjIFRSQU5TRkVSIERBVEEgRlJPTSBTUUwgREFUQUJBU0UgVE8gUiBEQVRBRlJBTUUNCg0KVGhlIGZvbGxvd2luZyBjb2RlIGlzIHVzZWQgdG8gcnVuIGEgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBidWlsdCB0YWJsZSB0aGF0IHdhcyBzdG9yZWQgaW4gdGhlIGNsYXNzIFNRTCBkYXRhYmFzZSBhbmQgdGhpcyBSIGRhdGFmcmFtZS4gQWRkaXRpb25hbGx5IEkgY2FuIGNvbmZpcm0gdGhhdCB0aGUgZGF0YSBpcyBsb2FkZWQgaW4gd2l0aCB0aGUgY29kZSBpbiBsaW5lIDI1DQpgYGB7ciBNeVNRTC1jb25uZWN0aW9uLCBlY2hvPUZBTFNFfQ0KY29uIDwtIGRiQ29ubmVjdChSTXlTUUw6Ok15U1FMKCksDQogICAgICAgICAgICAgICAgIGRibmFtZSA9ICJndWxsaXQubmF2YXJyZXRlMjYiLCANCiAgICAgICAgICAgICAgICAgaG9zdCA9ICJjdW55NjA3c3FsLm15c3FsLmRhdGFiYXNlLmF6dXJlLmNvbSIsIA0KICAgICAgICAgICAgICAgICB1c2VyID0gImd1bGxpdC5uYXZhcnJldGUyNiIsIA0KICAgICAgICAgICAgICAgICBwYXNzd29yZCA9ICI4ZjY0ZDI2ODY0ZWM4N2U0IiwgDQogICAgICAgICAgICAgICAgIHBvcnQgPSAzMzA2KQ0KZGJMaXN0VGFibGVzKGNvbikNCmBgYA0KIyMjIFJFVFJJVkUgVEhFIERBVEENCg0KQWZ0ZXIgcnVubmluZyB0aGUgY29ubmVjdGlvbiB0byBzZWUgaWYgdGhlIGRhdGEgaGFzIHN1Y2Nlc3NmdWxseSBsb2FkZWQgaW4sIEkgd2lsbCBub3cgZGVtb25zdHJhdGUgdGhlIHByaW50aW5nL2Rpc3BsYXkgb2YgdGhlIHRhYmxlIGRhdGEgdGhhdCBoYWQgYmVlbiBidWlsdCBiYWNrIGluIE15U1FMIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29kZToNCmBgYHtyIE15U1FMLXRhYmxlLWRhdGEsIGVjaG89VFJVRX0NCnRhYmxlX2RhdGEgPC0gZGJHZXRRdWVyeShjb24sICJTRUxFQ1QgKiBGUk9NIG1vdmllcmF0aW5nczsiKQ0KcHJpbnQodGFibGVfZGF0YSkNCmBgYA0KDQojIyMgTWlzc2luZyBkYXRhIHN0cmF0ZWd5IChmb3IgUikNCg0KSW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBhbmQgcmVtaW5pc2NlbnQgb2YgbGFzdCB3ZWVrJ3MgY29kZSwgSSB1c2UgYSBjb2RlIHRvIHJlbW92ZSBhbGwgcm93cyB3aXRob3V0IGFueSB2YWxpZCBkYXRhIG9yICJOQS4iIFRoaXMgY29kZSBpcyBlZmZlY3RpdmUgYXBwcm9hY2ggdG8gaW1wbGVtZW50IGJlY2F1c2UgcmVtb3ZpbmcgYWxsIHZvaWQgcm93cyBrZWVwcyB0aGUgZGF0YSBvdmVyYWxsIGNvbmNpc2UgYW5kIHdpdGhvdXQgYW55IHVubmVjZXNzYXJ5IGRhdGEgY2x1dHRlcmluZyB0aGUgZGlzcGxheS4NCmBgYHtyIG1pc3NpbmctZGF0YS1zdHJhdCwgZWNobz1UUlVFfQ0KY2xlYW5lZF9kYXRhIDwtIHRhYmxlX2RhdGEgJT4lDQogIGRyb3BfbmEoKQ0KYGBgDQoNCiMjIyBNaXNzaW5nIGRhdGEgc3RyYXRlZ3kgKGZvciBTUUwpDQoNCkFkZGl0aW9uYWxseSwgaGVyZSBpcyBjb2RlIHRoYXQgd291bGQgbm9ybWFsbHkgcmVtb3ZlIHRoZSAiTkEiIGludmFsaWQgdmFsdWVzLCBvciBpbiB0aGlzIGNhc2UsICJudWxsIiBpbiBTUUwuIERpc3BsYXllZCBpcyBhIGNvbW1vbiB3YXkgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLCBzaW1pbGFybHkgdG8gdGhlIGFwcHJvYWNoIGZvciBSLCBpbnZvbHZpbmcgcmVtb3ZpbmcgdGhlIHVubmVjZXNzYXJ5IG51bGwgdmFsdWVzL2ludmFsaWQgZGF0YS4gTW9yZSBzcGVjaWZpY2FsbHkgYW5kIG1vcmUgcmVhbGlzdGljYWxseSwgZnJvbSB0aGUgUmF0aW5nIGNvbHVtbi4NCmBgYHtyIG1pc3NpbmctZGF0YS1zdHJhdC1TUUwsIGVjaG89VFJVRSwgZXZhbD1GQUxTRX0NCkRFTEVURSBGUk9NIE1vdmllUmF0aW5ncw0KV0hFUkUgUmF0aW5nIElTIE5VTEw7DQpgYGANCi4uLg==