R Data Wrangling Homework
Instructions: Download the "Campaign.zip" file from attachment. Unzip to your working directory. And then use the load(file='camp.Rdata') to load a subset of the Contributions from Individuals 2015-2016 file (indiv16.zip) that has been narrowed to include only primary candidates and had a few columns dropped to save space.
Exploring the data
1. What are the ten most popular occupations and their counts in the camp data frame? What are your thoughts about how the data is entered based on the OCCUPATIONS column? Is it selected from a list or inputted as plain text? If you were trying to perform an analysis comparing different sectors donation habits what problems might you run into? Plot the top 6 most common occupations donations distributions. Choose a plot and style that you think easily conveys the information. Comment on anything you find interesting.
2. Join the data with the candidate names (as we did in class) with the appropriate 2015-2016 data. Drop only columns that no longer contain useful information. What are the before and after sizes of each table that goes into and comes out of these combinations? Make sure to drop and document any rows that are missing either a date, candidate, or amount. You may drop other rows if you feel there is a justification, but make sure to document what is dropped and your reason for doing so.
3. Create a data frame "popular" that aggregates the data by candidate and includes columns for the total number of donations made to a candidate and the total amount donated to each candidate.
4. Make tables for both the Republican and Democratic parties that show what the top 10 occupations (by count) that donate to each, the count, how much money in total, and how much on average. Feel free to add any additional information you find interesting to the tables.
5. What are the most common donation sizes? Make a table that for the top 20 donation sizes (by count) includes columns for the number of people that gave that amount, the percent of all donations (by count) that represents, the total amount in dollars, and the percent of all donations (by dollar) that represents. Any comments about the distribution?
6. Create data frames "weekly_d" and "weekly_r" that aggregate the total amount contributed to each candidate each week (with the Democratic candidates being listed in weekly_d and Republican candidates being listed in weekly_r ). For each data frame identify the candidates who received the top 5 most in terms of dollars, aggregate all other candidates in that dataframe into candidate "other". Plot both data frames over the appropriate time scales to compare the cumulative amounts raised over time.
7. Create a data frame "by_state" that aggregates the total number of donations and amount raised by each candidate in each state. Join this to the aggregated primary outcomes of each of the state races. Create columns for both the money raised and the votes received such that each state/party combination sums to 100 (i.e. Clinton might have raised 60% of democratic donations from Kansas and Sanders raised 40%).
8. Read through the state facts list and choose five you think might impact the money raised and the primary outcome. Create (for both money raised and votes won) a decision tree and random forest using your chosen variables. Print the summary() of the models and plot both. What are the results? Does one model do better than the other? What conclusions might you draw from these results? What might be wrong with this model (particularly the votes won)? I'm not asking for a technical answer necessarily, but try and think about the aggregations and scales of the data.
Attachment:- Assignment Files.rar