Step 1: Read in the positive and negative word files


# Create two vectors of words, one for the positive words and one for the negative words. The positive words can be found here: "https://cjacks04.github.io/687/Datasets/positive-words.txt" and negative words here: "https://cjacks04.github.io/687/Datasets/negative-words.txt". You should use the scan() function which reads data into a vector or list from the console or file. You'll need three arguments: (1) the file name/path, (2) the second argument is character(0) which will read the next  line as a character (as opposed to integer or some other datat ype), (3) the sep argument to tell R how the data are seperated e.g., \n

# Note that when reading in the files, there might be lines at the start and/or the end that will need to be removed (i.e. you should clean you data if needed).


Step 2: Process in the MLK speech

# Read the MLK text file using the readLines() function. Only the URL is required.
# Inspect the vector above. Some lines are blank "". Remove these.
# Create a term matrix. There are several steps here beginning with creating a vector source and making text transformations. (Check chapter 14 where sba is transformed)
# Create a list of counts for each word 

Step 3: Determine how many positive words were in the speech

# Hint: one way to do this is to use the ‘match’ function on the list of words from Step 2 and the positive words in the list from the import.

# sum the total number of words and store the value to "totalWords"

# create a vector "words" that contains all the words in "wordCounts"

# locate which words in "mlk" were positive (appeared in positive-word list)

# calculate the total number of positive words in "mlk" speech (in wordCounts) and assign the number to the variable "pTotal". The which() function on words the vector above will give you the index number.

# view the total number of positive words (95 positive words in the speech)

# view the percentage of positive words (11.29608% of the speech words are positive)


Step 4: Determine how many negative words were in the speech

# Hint: one way to do this is to use the ‘match’ function on the list of words from Step 2 and the positive words in the list from the import.


Step 5: Redo the ‘positive’ and ‘negative’ calculations for each 25% of the speech

# Compare the results (ex. a simple barchart of the 4 numbers). I recommend taking extracting quarters of the speech, storing each quarter in a vector and then conducting the calculations over each quarter. 
LS0tCnRpdGxlOiAiTGFiIDEwOiBUZXh0IE1pbmluZyIKYXV0aG9yOiAKLSBbWU9VUiBOQU1FXQotIFtZT1VSIFBBUlRORVJTIE5BTUVdCmRhdGU6ICJgciBTeXMudGltZSgpYCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMjIFN0ZXAJMToJUmVhZAlpbgl0aGUJcG9zaXRpdmUJYW5kCW5lZ2F0aXZlCXdvcmQJZmlsZXMKYGBge3J9CgojIENyZWF0ZSB0d28gdmVjdG9ycyBvZiB3b3Jkcywgb25lIGZvciB0aGUgcG9zaXRpdmUgd29yZHMgYW5kIG9uZSBmb3IgdGhlIG5lZ2F0aXZlIHdvcmRzLiBUaGUgcG9zaXRpdmUgd29yZHMgY2FuIGJlIGZvdW5kIGhlcmU6ICJodHRwczovL2NqYWNrczA0LmdpdGh1Yi5pby82ODcvRGF0YXNldHMvcG9zaXRpdmUtd29yZHMudHh0IiBhbmQgbmVnYXRpdmUgd29yZHMgaGVyZTogImh0dHBzOi8vY2phY2tzMDQuZ2l0aHViLmlvLzY4Ny9EYXRhc2V0cy9uZWdhdGl2ZS13b3Jkcy50eHQiLiBZb3Ugc2hvdWxkIHVzZSB0aGUgc2NhbigpIGZ1bmN0aW9uIHdoaWNoIHJlYWRzIGRhdGEgaW50byBhIHZlY3RvciBvciBsaXN0IGZyb20gdGhlIGNvbnNvbGUgb3IgZmlsZS4gWW91J2xsIG5lZWQgdGhyZWUgYXJndW1lbnRzOiAoMSkgdGhlIGZpbGUgbmFtZS9wYXRoLCAoMikgdGhlIHNlY29uZCBhcmd1bWVudCBpcyBjaGFyYWN0ZXIoMCkgd2hpY2ggd2lsbCByZWFkIHRoZSBuZXh0ICBsaW5lIGFzIGEgY2hhcmFjdGVyIChhcyBvcHBvc2VkIHRvIGludGVnZXIgb3Igc29tZSBvdGhlciBkYXRhdCB5cGUpLCAoMykgdGhlIHNlcCBhcmd1bWVudCB0byB0ZWxsIFIgaG93IHRoZSBkYXRhIGFyZSBzZXBlcmF0ZWQgZS5nLiwgXG4gCgojIE5vdGUgdGhhdCB3aGVuIHJlYWRpbmcgaW4gdGhlIGZpbGVzLCB0aGVyZSBtaWdodCBiZSBsaW5lcyBhdCB0aGUgc3RhcnQgYW5kL29yIHRoZSBlbmQgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZCAoaS5lLiB5b3Ugc2hvdWxkIGNsZWFuIHlvdSBkYXRhIGlmIG5lZWRlZCkuIAoKYGBgCgojIyMgU3RlcCAyOiBQcm9jZXNzIGluIHRoZSBNTEsgc3BlZWNoIApgYGB7cn0KIyBSZWFkIHRoZSBNTEsgdGV4dCBmaWxlIHVzaW5nIHRoZSByZWFkTGluZXMoKSBmdW5jdGlvbi4gT25seSB0aGUgVVJMIGlzIHJlcXVpcmVkLgojIEluc3BlY3QgdGhlIHZlY3RvciBhYm92ZS4gU29tZSBsaW5lcyBhcmUgYmxhbmsgIiIuIFJlbW92ZSB0aGVzZS4KIyBDcmVhdGUgYSB0ZXJtIG1hdHJpeC4gVGhlcmUgYXJlIHNldmVyYWwgc3RlcHMgaGVyZSBiZWdpbm5pbmcgd2l0aCBjcmVhdGluZyBhIHZlY3RvciBzb3VyY2UgYW5kIG1ha2luZyB0ZXh0IHRyYW5zZm9ybWF0aW9ucy4gKENoZWNrIGNoYXB0ZXIgMTQgd2hlcmUgc2JhIGlzIHRyYW5zZm9ybWVkKQojIENyZWF0ZSBhIGxpc3Qgb2YgY291bnRzIGZvciBlYWNoIHdvcmQgCmBgYAoKIyMjIFN0ZXAgMzogRGV0ZXJtaW5lIGhvdyBtYW55IHBvc2l0aXZlIHdvcmRzIHdlcmUgaW4gdGhlIHNwZWVjaCAgCmBgYHtyfQojIEhpbnQ6IG9uZSB3YXkgdG8gZG8gdGhpcyBpcyB0byB1c2UgdGhlIOKAmG1hdGNo4oCZIGZ1bmN0aW9uIG9uIHRoZSBsaXN0IG9mIHdvcmRzIGZyb20gU3RlcCAyIGFuZCB0aGUgcG9zaXRpdmUgd29yZHMgaW4gdGhlIGxpc3QgZnJvbSB0aGUgaW1wb3J0LiAKCiAgIyBzdW0gdGhlIHRvdGFsIG51bWJlciBvZiB3b3JkcyBhbmQgc3RvcmUgdGhlIHZhbHVlIHRvICJ0b3RhbFdvcmRzIgogIAogICMgY3JlYXRlIGEgdmVjdG9yICJ3b3JkcyIgdGhhdCBjb250YWlucyBhbGwgdGhlIHdvcmRzIGluICJ3b3JkQ291bnRzIgogIAogICMgbG9jYXRlIHdoaWNoIHdvcmRzIGluICJtbGsiIHdlcmUgcG9zaXRpdmUgKGFwcGVhcmVkIGluIHBvc2l0aXZlLXdvcmQgbGlzdCkKICAKICAjIGNhbGN1bGF0ZSB0aGUgdG90YWwgbnVtYmVyIG9mIHBvc2l0aXZlIHdvcmRzIGluICJtbGsiIHNwZWVjaCAoaW4gd29yZENvdW50cykgYW5kIGFzc2lnbiB0aGUgbnVtYmVyIHRvIHRoZSB2YXJpYWJsZSAicFRvdGFsIi4gVGhlIHdoaWNoKCkgZnVuY3Rpb24gb24gd29yZHMgdGhlIHZlY3RvciBhYm92ZSB3aWxsIGdpdmUgeW91IHRoZSBpbmRleCBudW1iZXIuIAogCiAgIyB2aWV3IHRoZSB0b3RhbCBudW1iZXIgb2YgcG9zaXRpdmUgd29yZHMgKDk1IHBvc2l0aXZlIHdvcmRzIGluIHRoZSBzcGVlY2gpCiAgIAogICMgdmlldyB0aGUgcGVyY2VudGFnZSBvZiBwb3NpdGl2ZSB3b3JkcyAoMTEuMjk2MDglIG9mIHRoZSBzcGVlY2ggd29yZHMgYXJlIHBvc2l0aXZlKQogCmBgYAoKIyMjIFN0ZXAgNDogRGV0ZXJtaW5lIGhvdyBtYW55IG5lZ2F0aXZlIHdvcmRzIHdlcmUgaW4gdGhlIHNwZWVjaCAKYGBge3J9CiMgSGludDogb25lIHdheSB0byBkbyB0aGlzIGlzIHRvIHVzZSB0aGUg4oCYbWF0Y2jigJkgZnVuY3Rpb24gb24gdGhlIGxpc3Qgb2Ygd29yZHMgZnJvbSBTdGVwIDIgYW5kIHRoZSBwb3NpdGl2ZSB3b3JkcyBpbiB0aGUgbGlzdCBmcm9tIHRoZSBpbXBvcnQuIAoKYGBgCgojIyMgU3RlcCA1OiBSZWRvIHRoZSDigJhwb3NpdGl2ZeKAmSBhbmQg4oCYbmVnYXRpdmXigJkgY2FsY3VsYXRpb25zIGZvciBlYWNoIDI1JSBvZiB0aGUgc3BlZWNoIApgYGB7cn0KIyBDb21wYXJlIHRoZSByZXN1bHRzIChleC4gYSBzaW1wbGUgYmFyY2hhcnQgb2YgdGhlIDQgbnVtYmVycykuIEkgcmVjb21tZW5kIHRha2luZyBleHRyYWN0aW5nIHF1YXJ0ZXJzIG9mIHRoZSBzcGVlY2gsIHN0b3JpbmcgZWFjaCBxdWFydGVyIGluIGEgdmVjdG9yIGFuZCB0aGVuIGNvbmR1Y3RpbmcgdGhlIGNhbGN1bGF0aW9ucyBvdmVyIGVhY2ggcXVhcnRlci4gCmBgYAoK