Synopsis

The following is my report for the week 2 homework assignment. The focus of this assignment is to learn how to import data into R for use and analysis. This homework consists of five different problems as detailed below and involves three different data sets: artificial Reddit user data, 2017 Fair Market Rent Data from HUD, and average daily temperatures for Cincinnati dating back to 1995.

Required Packages

To complete the exercises in this assignment, the following packages were used:

library(readxl) ## This package was used for problem 3.
## Warning: package 'readxl' was built under R version 3.2.4
library(gdata) ## This package was used for problem 4.
## gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
## 
## gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
## 
## Attaching package: 'gdata'
## The following object is masked from 'package:stats':
## 
##     nobs
## The following object is masked from 'package:utils':
## 
##     object.size

Homework Exercises

For each of the below problems, I imported the data and saved it. I then used head() function to display a small portion of the data and the str() function to display the structure of the data.

  1. Download & import the csv file located at: https://bradleyboehmke.github.io/public/data/reddit.csv
#############################################
# Problem 1: Download and Import a csv file #
#############################################

reddit_data <- read.csv("/Users/MatthewMurphy/Dropbox (Personal)/School/5th Year/Data Wrangling with R/bootcamp/data/reddit.csv", stringsAsFactors = FALSE)
head(reddit_data, n = 5)
##   id gender age.range marital.status  employment.status military.service
## 1  1      0     25-34           <NA> Employed full time             <NA>
## 2  2      0     25-34           <NA> Employed full time             <NA>
## 3  3      1     18-24           <NA>          Freelance             <NA>
## 4  4      0     25-34           <NA>          Freelance             <NA>
## 5  5      1     25-34           <NA> Employed full time             <NA>
##   children         education       country      state      income.range
## 1       No Bachelor's degree United States   New York  $150,000 or more
## 2       No Bachelor's degree United States   New York  $150,000 or more
## 3       No      Some college United States   Virginia     Under $20,000
## 4       No Bachelor's degree United States   New York  $150,000 or more
## 5       No Bachelor's degree United States California $70,000 - $99,999
##      fav.reddit dog.cat cheese
## 1  getmotivated    <NA>   <NA>
## 2        gaming    <NA>   <NA>
## 3 snackexchange    <NA>   <NA>
## 4    spacedicks    <NA>   <NA>
## 5           aww    <NA>   <NA>
str(reddit_data)
## 'data.frame':    32754 obs. of  14 variables:
##  $ id               : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ gender           : int  0 0 1 0 1 0 0 0 0 0 ...
##  $ age.range        : chr  "25-34" "25-34" "18-24" "25-34" ...
##  $ marital.status   : chr  NA NA NA NA ...
##  $ employment.status: chr  "Employed full time" "Employed full time" "Freelance" "Freelance" ...
##  $ military.service : chr  NA NA NA NA ...
##  $ children         : chr  "No" "No" "No" "No" ...
##  $ education        : chr  "Bachelor's degree" "Bachelor's degree" "Some college" "Bachelor's degree" ...
##  $ country          : chr  "United States" "United States" "United States" "United States" ...
##  $ state            : chr  "New York" "New York" "Virginia" "New York" ...
##  $ income.range     : chr  "$150,000 or more" "$150,000 or more" "Under $20,000" "$150,000 or more" ...
##  $ fav.reddit       : chr  "getmotivated" "gaming" "snackexchange" "spacedicks" ...
##  $ dog.cat          : chr  NA NA NA NA ...
##  $ cheese           : chr  NA NA NA NA ...
  1. Now import the above csv file directly from the url provided (without downloading to your local hard drive).
#############################################
# Problem 2: Import a csv file from the web #
#############################################
url <- "https://bradleyboehmke.github.io/public/data/reddit.csv"
reddit_data_web <- read.csv(url)
head(reddit_data_web, n = 5)
##   id gender age.range marital.status  employment.status military.service
## 1  1      0     25-34           <NA> Employed full time             <NA>
## 2  2      0     25-34           <NA> Employed full time             <NA>
## 3  3      1     18-24           <NA>          Freelance             <NA>
## 4  4      0     25-34           <NA>          Freelance             <NA>
## 5  5      1     25-34           <NA> Employed full time             <NA>
##   children         education       country      state      income.range
## 1       No Bachelor's degree United States   New York  $150,000 or more
## 2       No Bachelor's degree United States   New York  $150,000 or more
## 3       No      Some college United States   Virginia     Under $20,000
## 4       No Bachelor's degree United States   New York  $150,000 or more
## 5       No Bachelor's degree United States California $70,000 - $99,999
##      fav.reddit dog.cat cheese
## 1  getmotivated    <NA>   <NA>
## 2        gaming    <NA>   <NA>
## 3 snackexchange    <NA>   <NA>
## 4    spacedicks    <NA>   <NA>
## 5           aww    <NA>   <NA>
str(reddit_data_web)
## 'data.frame':    32754 obs. of  14 variables:
##  $ id               : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ gender           : int  0 0 1 0 1 0 0 0 0 0 ...
##  $ age.range        : Factor w/ 7 levels "18-24","25-34",..: 2 2 1 2 2 2 2 1 3 2 ...
##  $ marital.status   : Factor w/ 6 levels "Engaged","Forever Alone",..: NA NA NA NA NA 4 3 4 4 3 ...
##  $ employment.status: Factor w/ 6 levels "Employed full time",..: 1 1 2 2 1 1 1 4 1 2 ...
##  $ military.service : Factor w/ 2 levels "No","Yes": NA NA NA NA NA 1 1 1 1 1 ...
##  $ children         : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ education        : Factor w/ 7 levels "Associate degree",..: 2 2 5 2 2 2 5 2 2 5 ...
##  $ country          : Factor w/ 439 levels " Canada"," Canada eh",..: 394 394 394 394 394 394 125 394 394 125 ...
##  $ state            : Factor w/ 53 levels "","Alabama","Alaska",..: 33 33 48 33 6 33 1 6 33 1 ...
##  $ income.range     : Factor w/ 8 levels "$100,000 - $149,999",..: 2 2 8 2 7 2 NA 7 2 7 ...
##  $ fav.reddit       : Factor w/ 1834 levels "","___","-","?",..: 720 691 1511 1528 188 691 1318 571 1629 1 ...
##  $ dog.cat          : Factor w/ 3 levels "I like cats.",..: NA NA NA NA NA 2 2 2 1 1 ...
##  $ cheese           : Factor w/ 11 levels "American","Brie",..: NA NA NA NA NA 3 3 1 10 7 ...
  1. Import the .xlsx file located at: http://www.huduser.gov/portal/datasets/fmr/fmr2017/FY2017_4050_FMR.xlsx
#############################################
# Problem 3: Import a downloaded xlsx file  #
#############################################
library(readxl)
mydata <- read_excel("/Users/MatthewMurphy/Dropbox (Personal)/School/5th Year/Data Wrangling with R/bootcamp/data/FY2017_4050_FMR.xlsx"
                     , sheet = "EXCEL_DATA")
head(mydata, n = 5)
##     fips2010   fips2000 fmr2 fmr0 fmr1 fmr3 fmr4 State       Metro_code
## 1 2300512300       <NA> 1078  755  851 1454 1579    23 METRO38860MM6400
## 2 6099999999       <NA>  677  502  506  987 1038    60 NCNTY60999N60999
## 3 6999999999       <NA>  666  411  498  961 1158    69 NCNTY69999N69999
## 4 0100199999 0100199999  822  587  682 1054 1425     1 METRO33860M33860
## 5 0100399999 0100399999  977  807  847 1422 1634     1 METRO19300M19300
##                          areaname county CouSub               countyname
## 1 Portland, ME HUD Metro FMR Area     NA  12300        Cumberland County
## 2                  American Samoa    999  99999           American Samoa
## 3        Northern Mariana Islands    999  99999 Northern Mariana Islands
## 4              Montgomery, AL MSA      1  99999           Autauga County
## 5   Daphne-Fairhope-Foley, AL MSA      3  99999           Baldwin County
##           county_town_name pop2010 acs_2016_2 state_alpha fmr_type metro
## 1    Chebeague Island town     341       1109          ME       40     1
## 2           American Samoa   55519        653          AS       40     0
## 3 Northern Mariana Islands   53883        642          MP       40     0
## 4           Autauga County   54571        788          AL       40     1
## 5           Baldwin County  182265        873          AL       40     1
##   FMR_PCT_Change FMR_Dollar_Change
## 1      0.9720469               -31
## 2      1.0367534                24
## 3      1.0373832                24
## 4      1.0431472                34
## 5      1.1191294               104
str(mydata)
## Classes 'tbl_df', 'tbl' and 'data.frame':    4769 obs. of  21 variables:
##  $ fips2010         : chr  "2300512300" "6099999999" "6999999999" "0100199999" ...
##  $ fips2000         : chr  NA NA NA "0100199999" ...
##  $ fmr2             : num  1078 677 666 822 977 ...
##  $ fmr0             : num  755 502 411 587 807 501 665 665 491 464 ...
##  $ fmr1             : num  851 506 498 682 847 505 751 751 494 467 ...
##  $ fmr3             : num  1454 987 961 1054 1422 ...
##  $ fmr4             : num  1579 1038 1158 1425 1634 ...
##  $ State            : num  23 60 69 1 1 1 1 1 1 1 ...
##  $ Metro_code       : chr  "METRO38860MM6400" "NCNTY60999N60999" "NCNTY69999N69999" "METRO33860M33860" ...
##  $ areaname         : chr  "Portland, ME HUD Metro FMR Area" "American Samoa" "Northern Mariana Islands" "Montgomery, AL MSA" ...
##  $ county           : num  NA 999 999 1 3 5 7 9 11 13 ...
##  $ CouSub           : chr  "12300" "99999" "99999" "99999" ...
##  $ countyname       : chr  "Cumberland County" "American Samoa" "Northern Mariana Islands" "Autauga County" ...
##  $ county_town_name : chr  "Chebeague Island town" "American Samoa" "Northern Mariana Islands" "Autauga County" ...
##  $ pop2010          : num  341 55519 53883 54571 182265 ...
##  $ acs_2016_2       : num  1109 653 642 788 873 ...
##  $ state_alpha      : chr  "ME" "AS" "MP" "AL" ...
##  $ fmr_type         : num  40 40 40 40 40 40 40 40 40 40 ...
##  $ metro            : num  1 0 0 1 1 0 1 1 0 0 ...
##  $ FMR_PCT_Change   : num  0.972 1.037 1.037 1.043 1.119 ...
##  $ FMR_Dollar_Change: num  -31 24 24 34 104 35 26 26 52 52 ...
  1. Now import the above .xlsx file directly from the url provided (without downloading to your local hard drive).
##################################################
# Problem 4: Import a an xlsx file from the web  #
##################################################
library(gdata)
url3 <- "http://www.huduser.gov/portal/datasets/fmr/fmr2017/FY2017_4050_FMR.xlsx"
mydata_web <- read.xls(url3)
head(mydata_web, n = 5)
##     fips2010  fips2000 fmr2 fmr0 fmr1 fmr3 fmr4 State       Metro_code
## 1 2300512300        NA 1078  755  851 1454 1579    23 METRO38860MM6400
## 2 6099999999        NA  677  502  506  987 1038    60 NCNTY60999N60999
## 3 6999999999        NA  666  411  498  961 1158    69 NCNTY69999N69999
## 4  100199999 100199999  822  587  682 1054 1425     1 METRO33860M33860
## 5  100399999 100399999  977  807  847 1422 1634     1 METRO19300M19300
##                          areaname county CouSub               countyname
## 1 Portland, ME HUD Metro FMR Area     NA  12300        Cumberland County
## 2                  American Samoa    999  99999           American Samoa
## 3        Northern Mariana Islands    999  99999 Northern Mariana Islands
## 4              Montgomery, AL MSA      1  99999           Autauga County
## 5   Daphne-Fairhope-Foley, AL MSA      3  99999           Baldwin County
##           county_town_name pop2010 acs_2016_2 state_alpha fmr_type metro
## 1    Chebeague Island town     341       1109          ME       40     1
## 2           American Samoa   55519        653          AS       40     0
## 3 Northern Mariana Islands   53883        642          MP       40     0
## 4           Autauga County   54571        788          AL       40     1
## 5           Baldwin County  182265        873          AL       40     1
##   FMR_PCT_Change FMR_Dollar_Change
## 1      0.9720469               -31
## 2      1.0367534                24
## 3      1.0373832                24
## 4      1.0431472                34
## 5      1.1191294               104
str(mydata_web)
## 'data.frame':    4769 obs. of  21 variables:
##  $ fips2010         : num  2.3e+09 6.1e+09 7.0e+09 1.0e+08 1.0e+08 ...
##  $ fips2000         : num  NA NA NA 1e+08 1e+08 ...
##  $ fmr2             : int  1078 677 666 822 977 671 866 866 621 621 ...
##  $ fmr0             : int  755 502 411 587 807 501 665 665 491 464 ...
##  $ fmr1             : int  851 506 498 682 847 505 751 751 494 467 ...
##  $ fmr3             : int  1454 987 961 1054 1422 839 1163 1163 853 849 ...
##  $ fmr4             : int  1579 1038 1158 1425 1634 958 1298 1298 856 1094 ...
##  $ State            : int  23 60 69 1 1 1 1 1 1 1 ...
##  $ Metro_code       : Factor w/ 2598 levels "METRO10180M10180",..: 451 2592 2594 384 160 625 55 55 626 627 ...
##  $ areaname         : Factor w/ 2598 levels " Santa Ana-Anaheim-Irvine, CA HUD Metro FMR Area",..: 1903 52 1723 1633 571 122 186 186 263 271 ...
##  $ county           : int  NA 999 999 1 3 5 7 9 11 13 ...
##  $ CouSub           : int  12300 99999 99999 99999 99999 99999 99999 99999 99999 99999 ...
##  $ countyname       : Factor w/ 1961 levels "A\xf1asco Municipio",..: 462 42 1265 92 99 110 163 178 239 249 ...
##  $ county_town_name : Factor w/ 3175 levels "A\xf1asco Municipio",..: 533 61 2024 136 149 165 254 277 386 401 ...
##  $ pop2010          : int  341 55519 53883 54571 182265 27457 22915 57322 10914 20947 ...
##  $ acs_2016_2       : int  1109 653 642 788 873 636 840 840 569 569 ...
##  $ state_alpha      : Factor w/ 56 levels "AK","AL","AR",..: 24 4 28 2 2 2 2 2 2 2 ...
##  $ fmr_type         : int  40 40 40 40 40 40 40 40 40 40 ...
##  $ metro            : int  1 0 0 1 1 0 1 1 0 0 ...
##  $ FMR_PCT_Change   : num  0.972 1.037 1.037 1.043 1.119 ...
##  $ FMR_Dollar_Change: int  -31 24 24 34 104 35 26 26 52 52 ...
  1. Go to this University of Dayton webpage http://academic.udayton.edu/kissock/http/Weather/citylistUS.htm, scroll down to Ohio and import the Cincinnati (OHCINCIN.txt) file.
###############################################
# Problem 5: Import a text file from the web  #
###############################################
url3 <- "http://academic.udayton.edu/kissock/http/Weather/gsod95-current/OHCINCIN.txt"
mydata_temps <- read.table(url3,header = FALSE)
head(mydata_temps, n = 5)
##   V1 V2   V3   V4
## 1  1  1 1995 41.1
## 2  1  2 1995 22.2
## 3  1  3 1995 22.8
## 4  1  4 1995 14.9
## 5  1  5 1995  9.5
str(mydata_temps)
## 'data.frame':    7963 obs. of  4 variables:
##  $ V1: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ V2: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ V3: int  1995 1995 1995 1995 1995 1995 1995 1995 1995 1995 ...
##  $ V4: num  41.1 22.2 22.8 14.9 9.5 23.8 31.1 26.9 31.3 31.5 ...