Synopsis

This is the homework for week 2 of “Data Wrangling with R” class. I have imported 5 kinds of datasets into R, using following methods:

Required Packages

The following packages were used for this assignment:

library(readxl) #to import excel file, using read_excel() function
library(gdata) #to scrap excel files from the internet
library(knitr) #to format the output of the assignment questions

Homework Problems

Below are the R codes and required output:

Problem 1

download & import the csv file located at: https://bradleyboehmke.github.io/public/data/reddit.csv

library(knitr)
file1 <- tempfile()
download.file("https://bradleyboehmke.github.io/public/data/reddit.csv",file1)
reddit_a <- read.csv(file1, stringsAsFactors = FALSE)
knitr::kable(head(reddit_a))
id gender age.range marital.status employment.status military.service children education country state income.range fav.reddit dog.cat cheese
1 0 25-34 NA Employed full time NA No Bachelor’s degree United States New York $150,000 or more getmotivated NA NA
2 0 25-34 NA Employed full time NA No Bachelor’s degree United States New York $150,000 or more gaming NA NA
3 1 18-24 NA Freelance NA No Some college United States Virginia Under $20,000 snackexchange NA NA
4 0 25-34 NA Freelance NA No Bachelor’s degree United States New York $150,000 or more spacedicks NA NA
5 1 25-34 NA Employed full time NA No Bachelor’s degree United States California $70,000 - $99,999 aww NA NA
6 0 25-34 Married/civil union/domestic partnership Employed full time No No Bachelor’s degree United States New York $150,000 or more gaming I like dogs. Cheddar
str(reddit_a)
## '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 ...

Problem 2

now import the above csv file directly from the url provided (without downloading to your local hard drive)

url <- "https://bradleyboehmke.github.io/public/data/reddit.csv"
reddit_b <- read.csv(url, stringsAsFactors = FALSE)
knitr::kable(head(reddit_b))
id gender age.range marital.status employment.status military.service children education country state income.range fav.reddit dog.cat cheese
1 0 25-34 NA Employed full time NA No Bachelor’s degree United States New York $150,000 or more getmotivated NA NA
2 0 25-34 NA Employed full time NA No Bachelor’s degree United States New York $150,000 or more gaming NA NA
3 1 18-24 NA Freelance NA No Some college United States Virginia Under $20,000 snackexchange NA NA
4 0 25-34 NA Freelance NA No Bachelor’s degree United States New York $150,000 or more spacedicks NA NA
5 1 25-34 NA Employed full time NA No Bachelor’s degree United States California $70,000 - $99,999 aww NA NA
6 0 25-34 Married/civil union/domestic partnership Employed full time No No Bachelor’s degree United States New York $150,000 or more gaming I like dogs. Cheddar
str(reddit_b)
## '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 ...

Problem 3

download & import the .xlsx file located at: http://www.huduser.gov/portal/datasets/fmr/fmr2017/FY2017_4050_FMR.xlsx

library(readxl)
fmr_a <- read_excel("E:/UC work/data wrangling with R/Data Wrangling with R (BANA 8090)/Week-2-HW/FY2017_4050_FMR.xlsx",sheet = "EXCEL_DATA")
knitr::kable(head(fmr_a))
fips2010 fips2000 fmr2 fmr0 fmr1 fmr3 fmr4 State Metro_code areaname county CouSub countyname county_town_name pop2010 acs_2016_2 state_alpha fmr_type metro FMR_PCT_Change FMR_Dollar_Change
2300512300 NA 1078 755 851 1454 1579 23 METRO38860MM6400 Portland, ME HUD Metro FMR Area NA 12300 Cumberland County Chebeague Island town 341 1109 ME 40 1 0.9720469 -31
6099999999 NA 677 502 506 987 1038 60 NCNTY60999N60999 American Samoa 999 99999 American Samoa American Samoa 55519 653 AS 40 0 1.0367534 24
6999999999 NA 666 411 498 961 1158 69 NCNTY69999N69999 Northern Mariana Islands 999 99999 Northern Mariana Islands Northern Mariana Islands 53883 642 MP 40 0 1.0373832 24
0100199999 0100199999 822 587 682 1054 1425 1 METRO33860M33860 Montgomery, AL MSA 1 99999 Autauga County Autauga County 54571 788 AL 40 1 1.0431472 34
0100399999 0100399999 977 807 847 1422 1634 1 METRO19300M19300 Daphne-Fairhope-Foley, AL MSA 3 99999 Baldwin County Baldwin County 182265 873 AL 40 1 1.1191294 104
0100599999 0100599999 671 501 505 839 958 1 NCNTY01005N01005 Barbour County, AL 5 99999 Barbour County Barbour County 27457 636 AL 40 0 1.0550314 35
str(fmr_a)
## 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 ...

Problem 4

now import the above .xlsx file directly from the url provided (without downloading to your local hard drive)

library(gdata)
url <- "http://www.huduser.gov/portal/datasets/fmr/fmr2017/FY2017_4050_FMR.xlsx"
fmr_b <- read.xls(url)
knitr::kable(head(fmr_b))
fips2010 fips2000 fmr2 fmr0 fmr1 fmr3 fmr4 State Metro_code areaname county CouSub countyname county_town_name pop2010 acs_2016_2 state_alpha fmr_type metro FMR_PCT_Change FMR_Dollar_Change
2300512300 NA 1078 755 851 1454 1579 23 METRO38860MM6400 Portland, ME HUD Metro FMR Area NA 12300 Cumberland County Chebeague Island town 341 1109 ME 40 1 0.9720469 -31
6099999999 NA 677 502 506 987 1038 60 NCNTY60999N60999 American Samoa 999 99999 American Samoa American Samoa 55519 653 AS 40 0 1.0367534 24
6999999999 NA 666 411 498 961 1158 69 NCNTY69999N69999 Northern Mariana Islands 999 99999 Northern Mariana Islands Northern Mariana Islands 53883 642 MP 40 0 1.0373832 24
100199999 100199999 822 587 682 1054 1425 1 METRO33860M33860 Montgomery, AL MSA 1 99999 Autauga County Autauga County 54571 788 AL 40 1 1.0431472 34
100399999 100399999 977 807 847 1422 1634 1 METRO19300M19300 Daphne-Fairhope-Foley, AL MSA 3 99999 Baldwin County Baldwin County 182265 873 AL 40 1 1.1191294 104
100599999 100599999 671 501 505 839 958 1 NCNTY01005N01005 Barbour County, AL 5 99999 Barbour County Barbour County 27457 636 AL 40 0 1.0550314 35
str(fmr_b)
## '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 "Abbeville County",..: 462 41 1265 92 99 110 163 178 239 249 ...
##  $ county_town_name : Factor w/ 3175 levels "Abbeville County",..: 533 60 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 ...

Problem 5

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

ohcincin <- read.table("E:/UC work/data wrangling with R/Data Wrangling with R (BANA 8090)/Week-2-HW/OHCINCIN.txt")
knitr::kable(head(ohcincin))
V1 V2 V3 V4
1 1 1995 41.1
1 2 1995 22.2
1 3 1995 22.8
1 4 1995 14.9
1 5 1995 9.5
1 6 1995 23.8
str(ohcincin)
## '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 ...