Required packages

## 
## Attaching package: 'dplyr'
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
theURL <- "http://www.jaredlander.com/2012/02/another-kind-of-super-bowl-pool/"
bowlPool <- readHTMLTable(theURL, which = 1, header = FALSE, stringsAsFactors = FALSE)
bowlPool
##                V1      V2        V3
## 1   Participant 1 Giant A Patriot Q
## 2   Participant 2 Giant B Patriot R
## 3   Participant 3 Giant C Patriot S
## 4   Participant 4 Giant D Patriot T
## 5   Participant 5 Giant E Patriot U
## 6   Participant 6 Giant F Patriot V
## 7   Participant 7 Giant G Patriot W
## 8   Participant 8 Giant H Patriot X
## 9   Participant 9 Giant I Patriot Y
## 10 Participant 10 Giant J Patriot Z

1. What type of data structure is bowlpool?

Answer:- It is a dataframe

str(bowlPool)
## 'data.frame':    10 obs. of  3 variables:
##  $ V1: chr  "Participant 1" "Participant 2" "Participant 3" "Participant 4" ...
##  $ V2: chr  "Giant A" "Giant B" "Giant C" "Giant D" ...
##  $ V3: chr  "Patriot Q" "Patriot R" "Patriot S" "Patriot T" ...

2. Suppose instead you call readHTMLTable() with just the URL argument, against the provided URL, as shown below

theURL <- "http://www.w3schools.com/html/html_tables.asp"
hvalues <- readHTMLTable(theURL)

What is the type of variable returned in hvalues?

Answer:- It is a list

str(hvalues)
## List of 6
##  $ NULL:'data.frame':    4 obs. of  4 variables:
##   ..$ Number    : Factor w/ 4 levels "1","2","3","4": 1 2 3 4
##   ..$ First Name: Factor w/ 4 levels "Adam","Eve","Jill",..: 2 4 1 3
##   ..$ Last Name : Factor w/ 4 levels "Doe","Jackson",..: 2 1 3 4
##   ..$ Points    : Factor w/ 4 levels "50","67","80",..: 4 3 2 1
##  $ NULL: NULL
##  $ NULL: NULL
##  $ NULL: NULL
##  $ NULL: NULL
##  $ NULL:'data.frame':    10 obs. of  2 variables:
##   ..$ Tag        : Factor w/ 10 levels "<caption>","<col>",..: 4 8 10 6 1 3 2 9 5 7
##   ..$ Description: Factor w/ 10 levels "Defines a cell in a table",..: 4 2 3 1 5 9 10 8 6 7

3. Write R code that shows how many HTML tables are represented in hvalues

dfctr <- 0
for(i in 1:length(hvalues))
{
  if (is.data.frame(getElement(hvalues,i))==T)
  {
    dfctr<-dfctr+1
  }
}
sprintf("dataframes count in hvalues is %i",dfctr)
## [1] "dataframes count in hvalues is 2"

4. Modify the readHTMLTable code so that just the table with Number, FirstName, LastName, and Points is returned into a dataframe

theURL <- "http://www.w3schools.com/html/html_tables.asp"
bowlPool2 <- readHTMLTable(theURL,which=1)

5. Modify the returned data frame so only the Last Name and Points columns are shown.

bowlPool2 %>% select (get("Last Name"),get("Points"))
##   Last Name Points
## 1   Jackson     94
## 2       Doe     80
## 3   Johnson     67
## 4     Smith     50
## 6 Identify another interesting page on the web with HTML table values. This may be somewhat tricky, because while HTML tables are great for web-page scrapers, many HTML designers now prefer creating tables using other methods (such as

tags or .png files).

theURL <- "http://www.basketball-reference.com/leagues/NBA_2014.html"

7 How many HTML tables does that page contain?

hardpage <- readHTMLTable(theURL)
str(hardpage)
## List of 87
##  $ NULL        :'data.frame':    39 obs. of  8 variables:
##   ..$ V1: Factor w/ 39 levels "Atlanta Hawks* (8)",..: 13 12 2 36 4 24 3 29 5 16 ...
##   ..$ V2: Factor w/ 27 levels "15","19","23",..: 27 26 25 16 15 11 4 2 25 21 ...
##   ..$ V3: Factor w/ 26 levels "20","23","25",..: NA 26 25 9 10 14 21 23 25 4 ...
##   ..$ V4: Factor w/ 26 levels ".183",".232",..: NA 26 25 16 15 11 4 2 25 21 ...
##   ..$ V5: Factor w/ 22 levels "10.0","11.0",..: NA 22 20 21 14 2 7 10 20 21 ...
##   ..$ V6: Factor w/ 31 levels "100.5","100.7",..: NA 31 30 4 26 27 21 28 30 23 ...
##   ..$ V7: Factor w/ 28 levels "100.7","101.0",..: NA 28 27 23 25 24 1 16 27 18 ...
##   ..$ V8: Factor w/ 31 levels "-0.88","-0.89",..: NA 31 30 18 4 3 10 6 30 22 ...
##  $ E_standings :'data.frame':    18 obs. of  8 variables:
##   ..$ Eastern Conference: Factor w/ 18 levels "Atlanta Hawks* (8)",..: 2 17 4 13 3 15 5 10 7 8 ...
##   ..$ W                 : Factor w/ 14 levels "15","19","23",..: 14 11 10 7 4 2 14 13 11 6 ...
##   ..$ L                 : Factor w/ 14 levels "26","28","34",..: 14 3 4 7 10 12 14 1 3 8 ...
##   ..$ W/L%              : Factor w/ 14 levels ".183",".232",..: 14 11 10 7 4 2 14 13 11 6 ...
##   ..$ GB                : Factor w/ 12 levels "10.0","11.0",..: 11 12 8 2 4 6 11 12 10 4 ...
##   ..$ PS/G              : Factor w/ 15 levels "100.7","101.0",..: 15 3 12 13 7 14 15 9 5 11 ...
##   ..$ PA/G              : Factor w/ 14 levels "100.7","101.5",..: 14 11 13 12 1 6 14 8 7 2 ...
##   ..$ SRS               : Factor w/ 16 levels "-0.88","-0.89",..: 16 13 4 3 8 5 16 14 12 6 ...
##  $ W_standings :'data.frame':    18 obs. of  8 variables:
##   ..$ Western Conference: Factor w/ 18 levels "Dallas Mavericks* (8)",..: 10 11 14 8 2 18 12 5 3 13 ...
##   ..$ W                 : Factor w/ 15 levels "25","27","28",..: 15 13 11 6 5 1 15 12 10 7 ...
##   ..$ L                 : Factor w/ 15 levels "20","23","25",..: 15 2 4 9 10 14 15 3 5 8 ...
##   ..$ W/L%              : Factor w/ 15 levels ".305",".329",..: 15 13 11 6 5 1 15 12 10 7 ...
##   ..$ GB                : Factor w/ 14 levels "12.0","13.0",..: 13 14 9 3 4 8 13 14 10 12 ...
##   ..$ PS/G              : Factor w/ 16 levels "100.5","103.0",..: 16 8 9 10 4 13 16 12 3 6 ...
##   ..$ PA/G              : Factor w/ 15 levels "101.0","102.2",..: 15 14 5 8 9 2 15 1 13 4 ...
##   ..$ SRS               : Factor w/ 16 levels "-1.40","-1.98",..: 16 13 10 9 1 5 16 14 12 8 ...
##  $ NULL        :'data.frame':    121 obs. of  6 variables:
##   ..$ V1: Factor w/ 34 levels "Â","Eastern Conference Finals (4-2):",..: 21 8 24 25 26 27 1 2 20 8 ...
##   ..$ V2: Factor w/ 58 levels "Brooklyn Nets over Toronto Raptors (Series Stats)",..: NA 40 33 47 39 32 NA 11 NA 35 ...
##   ..$ V3: Factor w/ 16 levels "Atlanta Hawks",..: NA 11 11 14 14 11 NA NA NA 11 ...
##   ..$ V4: Factor w/ 36 levels "100","101","102",..: NA 32 35 10 7 24 NA NA NA 33 ...
##   ..$ V5: Factor w/ 16 levels "@ Atlanta Hawks",..: NA 14 14 11 11 14 NA NA NA 8 ...
##   ..$ V6: Factor w/ 43 levels "100","101","102",..: NA 11 40 37 32 5 NA NA NA 8 ...
##  $ NULL        :'data.frame':    4 obs. of  6 variables:
##   ..$ Game 1             : Factor w/ 4 levels "Game 2","Game 3",..: 1 2 3 4
##   ..$ Thu, June 5        : Factor w/ 4 levels "Sun, June 15",..: 2 4 3 1
##   ..$ Miami Heat         : Factor w/ 2 levels "Miami Heat","San Antonio Spurs": 1 2 2 1
##   ..$ 95                 : Factor w/ 4 levels "107","111","87",..: 4 2 1 3
##   ..$ @ San Antonio Spurs: Factor w/ 2 levels "@ Miami Heat",..: 2 1 1 2
##   ..$ 110                : Factor w/ 4 levels "104","86","92",..: 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  6 variables:
##   ..$ Game 1          : Factor w/ 5 levels "Game 2","Game 3",..: 1 2 3 4 5
##   ..$ Sun, May 18     : Factor w/ 5 levels "Fri, May 30",..: 4 3 2 5 1
##   ..$ Miami Heat      : Factor w/ 2 levels "Indiana Pacers",..: 2 1 1 2 1
##   ..$ 96              : Factor w/ 3 levels "87","90","92": 1 1 2 2 3
##   ..$ @ Indiana Pacers: Factor w/ 2 levels "@ Indiana Pacers",..: 1 2 2 1 2
##   ..$ 107             : Factor w/ 5 levels "102","117","83",..: 3 5 1 4 2
##  $ NULL        :'data.frame':    5 obs. of  6 variables:
##   ..$ Game 1               : Factor w/ 5 levels "Game 2","Game 3",..: 1 2 3 4 5
##   ..$ Mon, May 19          : Factor w/ 5 levels "Sat, May 31",..: 5 2 4 3 1
##   ..$ Oklahoma City Thunder: Factor w/ 2 levels "Oklahoma City Thunder",..: 1 2 2 1 2
##   ..$ 105                  : Factor w/ 5 levels "112","77","89",..: 2 5 4 3 1
##   ..$ @ San Antonio Spurs  : Factor w/ 2 levels "@ Oklahoma City Thunder",..: 2 1 1 2 1
##   ..$ 122                  : Factor w/ 5 levels "105","106","107",..: 4 2 1 5 3
##  $ NULL        :'data.frame':    5 obs. of  6 variables:
##   ..$ Game 1            : Factor w/ 5 levels "Game 2","Game 3",..: 1 2 3 4 5
##   ..$ Mon, May 5        : Factor w/ 5 levels "Fri, May 9","Sun, May 11",..: 5 1 2 4 3
##   ..$ Washington Wizards: Factor w/ 2 levels "Indiana Pacers",..: 2 1 1 2 1
##   ..$ 102               : Factor w/ 5 levels "102","82","85",..: 2 3 5 1 4
##   ..$ @ Indiana Pacers  : Factor w/ 2 levels "@ Indiana Pacers",..: 1 2 2 1 2
##   ..$ 96                : Factor w/ 5 levels "63","79","80",..: 4 1 5 2 3
##  $ NULL        :'data.frame':    4 obs. of  6 variables:
##   ..$ Game 1       : Factor w/ 4 levels "Game 2","Game 3",..: 1 2 3 4
##   ..$ Tue, May 6   : Factor w/ 4 levels "Mon, May 12",..: 3 2 1 4
##   ..$ Brooklyn Nets: Factor w/ 2 levels "Brooklyn Nets",..: 1 2 2 1
##   ..$ 86           : Factor w/ 4 levels "102","82","90",..: 2 3 1 4
##   ..$ @ Miami Heat : Factor w/ 2 levels "@ Brooklyn Nets",..: 2 1 1 2
##   ..$ 107          : Factor w/ 3 levels "104","94","96": 2 1 3 3
##  $ NULL        :'data.frame':    5 obs. of  6 variables:
##   ..$ Game 1                 : Factor w/ 5 levels "Game 2","Game 3",..: 1 2 3 4 5
##   ..$ Mon, May 5             : Factor w/ 5 levels "Fri, May 9","Sun, May 11",..: 5 1 2 4 3
##   ..$ Los Angeles Clippers   : Factor w/ 2 levels "Los Angeles Clippers",..: 1 2 2 1 2
##   ..$ 122                    : Factor w/ 4 levels "101","104","118",..: 1 3 4 2 2
##   ..$ @ Oklahoma City Thunder: Factor w/ 2 levels "@ Los Angeles Clippers",..: 2 1 1 2 1
##   ..$ 105                    : Factor w/ 4 levels "101","105","112",..: 3 3 1 2 4
##  $ NULL        :'data.frame':    4 obs. of  6 variables:
##   ..$ Game 1                : Factor w/ 4 levels "Game 2","Game 3",..: 1 2 3 4
##   ..$ Tue, May 6            : Factor w/ 4 levels "Mon, May 12",..: 3 2 1 4
##   ..$ Portland Trail Blazers: Factor w/ 2 levels "Portland Trail Blazers",..: 1 2 2 1
##   ..$ 92                    : Factor w/ 4 levels "118","82","92",..: 4 1 3 2
##   ..$ @ San Antonio Spurs   : Factor w/ 2 levels "@ Portland Trail Blazers",..: 2 1 1 2
##   ..$ 116                   : Factor w/ 3 levels "103","104","114": 3 1 1 2
##  $ NULL        :'data.frame':    6 obs. of  6 variables:
##   ..$ Game 1           : Factor w/ 6 levels "Game 2","Game 3",..: 1 2 3 4 5 6
##   ..$ Sat, April 19    : Factor w/ 6 levels "Fri, April 25",..: 5 1 3 6 2 4
##   ..$ Brooklyn Nets    : Factor w/ 2 levels "Brooklyn Nets",..: 1 2 2 1 2 1
##   ..$ 94               : Factor w/ 6 levels "104","113","83",..: 5 6 4 2 3 1
##   ..$ @ Toronto Raptors: Factor w/ 2 levels "@ Brooklyn Nets",..: 2 1 1 2 1 2
##   ..$ 87               : Factor w/ 6 levels "100","102","103",..: 1 2 5 4 6 3
##  $ NULL        :'data.frame':    6 obs. of  6 variables:
##   ..$ Game 1          : Factor w/ 6 levels "Game 2","Game 3",..: 1 2 3 4 5 6
##   ..$ Sat, April 19   : Factor w/ 6 levels "Mon, April 28",..: 6 4 2 1 5 3
##   ..$ Atlanta Hawks   : Factor w/ 2 levels "Atlanta Hawks",..: 1 2 2 1 2 1
##   ..$ 101             : Factor w/ 5 levels "107","80","85",..: 3 3 4 1 5 2
##   ..$ @ Indiana Pacers: Factor w/ 2 levels "@ Atlanta Hawks",..: 2 1 1 2 1 2
##   ..$ 93              : Factor w/ 5 levels "101","88","92",..: 1 5 2 4 2 3
##  $ NULL        :'data.frame':    3 obs. of  6 variables:
##   ..$ Game 1           : Factor w/ 3 levels "Game 2","Game 3",..: 1 2 3
##   ..$ Sun, April 20    : Factor w/ 3 levels "Mon, April 28",..: 3 2 1
##   ..$ Charlotte Bobcats: Factor w/ 2 levels "Charlotte Bobcats",..: 1 2 2
##   ..$ 88               : Factor w/ 3 levels "109","97","98": 2 3 1
##   ..$ @ Miami Heat     : Factor w/ 2 levels "@ Charlotte Bobcats",..: 2 1 1
##   ..$ 99               : Factor w/ 3 levels "101","85","98": 1 2 3
##  $ NULL        :'data.frame':    4 obs. of  6 variables:
##   ..$ Game 1            : Factor w/ 4 levels "Game 2","Game 3",..: 1 2 3 4
##   ..$ Sun, April 20     : Factor w/ 4 levels "Fri, April 25",..: 3 1 2 4
##   ..$ Washington Wizards: Factor w/ 2 levels "Chicago Bulls",..: 2 1 1 2
##   ..$ 102               : Factor w/ 4 levels "100","101","75",..: 2 1 4 3
##   ..$ @ Chicago Bulls   : Factor w/ 2 levels "@ Chicago Bulls",..: 1 2 2 1
##   ..$ 93                : Factor w/ 4 levels "69","97","98",..: 4 2 3 1
##  $ NULL        :'data.frame':    6 obs. of  6 variables:
##   ..$ Game 1                : Factor w/ 6 levels "Game 2","Game 3",..: 1 2 3 4 5 6
##   ..$ Sat, April 19         : Factor w/ 6 levels "Mon, April 21",..: 1 4 3 6 5 2
##   ..$ Golden State Warriors : Factor w/ 2 levels "Golden State Warriors",..: 1 2 2 1 2 1
##   ..$ 109                   : Factor w/ 5 levels "103","121","97",..: 4 4 3 1 5 2
##   ..$ @ Los Angeles Clippers: Factor w/ 2 levels "@ Golden State Warriors",..: 2 1 1 2 1 2
##   ..$ 105                   : Factor w/ 6 levels "100","113","118",..: 5 6 3 2 1 4
##  $ NULL        :'data.frame':    6 obs. of  6 variables:
##   ..$ Game 1                 : Factor w/ 6 levels "Game 2","Game 3",..: 1 2 3 4 5 6
##   ..$ Sat, April 19          : Factor w/ 6 levels "Mon, April 21",..: 1 4 2 6 5 3
##   ..$ Memphis Grizzlies      : Factor w/ 2 levels "Memphis Grizzlies",..: 1 2 2 1 2 1
##   ..$ 86                     : Factor w/ 6 levels "100","104","109",..: 4 6 5 1 2 3
##   ..$ @ Oklahoma City Thunder: Factor w/ 2 levels "@ Memphis Grizzlies",..: 2 1 1 2 1 2
##   ..$ 100                    : Factor w/ 6 levels "105","120","84",..: 1 5 4 6 3 2
##  $ NULL        :'data.frame':    5 obs. of  6 variables:
##   ..$ Game 1                : Factor w/ 5 levels "Game 2","Game 3",..: 1 2 3 4 5
##   ..$ Sun, April 20         : Factor w/ 5 levels "Fri, April 25",..: 4 1 3 5 2
##   ..$ Portland Trail Blazers: Factor w/ 2 levels "Houston Rockets",..: 2 1 1 2 1
##   ..$ 122                   : Factor w/ 4 levels "112","120","121",..: 1 3 2 4 4
##   ..$ @ Houston Rockets     : Factor w/ 2 levels "@ Houston Rockets",..: 1 2 2 1 2
##   ..$ 120                   : Factor w/ 5 levels "105","108","116",..: 1 3 4 2 5
##  $ NULL        :'data.frame':    6 obs. of  6 variables:
##   ..$ Game 1             : Factor w/ 6 levels "Game 2","Game 3",..: 1 2 3 4 5 6
##   ..$ Sun, April 20      : Factor w/ 6 levels "Fri, May 2","Mon, April 28",..: 5 3 2 6 1 4
##   ..$ Dallas Mavericks   : Factor w/ 2 levels "Dallas Mavericks",..: 1 2 2 1 2 1
##   ..$ 85                 : Factor w/ 6 levels "103","108","111",..: 4 2 5 1 3 6
##   ..$ @ San Antonio Spurs: Factor w/ 2 levels "@ Dallas Mavericks",..: 2 1 1 2 1 2
##   ..$ 90                 : Factor w/ 5 levels "109","113","119",..: 5 1 4 1 2 3
##  $ team        :'data.frame':    31 obs. of  26 variables:
##   ..$ Rk   : Factor w/ 31 levels "","1","10","11",..: 2 13 24 26 27 28 29 30 31 3 ...
##   ..$ Team : Factor w/ 31 levels "Atlanta Hawks*",..: 14 11 19 26 22 28 25 7 8 10 ...
##   ..$ G    : Factor w/ 1 level "82": 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ MP   : Factor w/ 13 levels "19705","19730",..: 3 6 8 8 5 3 3 6 3 6 ...
##   ..$ FG   : Factor w/ 31 levels "2843","2931",..: 28 17 25 27 26 31 22 30 21 29 ...
##   ..$ FGA  : Factor w/ 30 levels "6272","6391",..: 13 5 30 28 15 18 19 20 26 25 ...
##   ..$ FG%  : Factor w/ 21 levels ".432",".435",..: 19 18 6 10 17 20 15 19 8 14 ...
##   ..$ 3P   : Factor w/ 30 levels "405","486","491",..: 19 30 14 28 17 20 26 24 21 29 ...
##   ..$ 3PA  : Factor w/ 30 levels "1147","1303",..: 23 30 14 28 17 14 27 19 22 25 ...
##   ..$ 3P%  : Factor w/ 23 levels ".312",".321",..: 8 12 4 18 14 23 18 22 12 20 ...
##   ..$ 2P   : Factor w/ 30 levels "2222","2268",..: 21 6 26 13 23 28 10 22 14 19 ...
##   ..$ 2PA  : Factor w/ 31 levels "4424","4443",..: 7 1 28 15 9 18 6 12 17 11 ...
##   ..$ 2P%  : Factor w/ 26 levels ".456",".461",..: 24 25 9 11 22 23 20 21 11 17 ...
##   ..$ FT   : Factor w/ 31 levels "1235","1253",..: 29 31 30 25 27 4 23 11 24 5 ...
##   ..$ FTA  : Factor w/ 31 levels "1642","1666",..: 30 31 29 18 24 1 23 8 27 7 ...
##   ..$ FT%  : Factor w/ 28 levels ".670",".710",..: 5 3 21 28 27 25 14 26 4 11 ...
##   ..$ ORB  : Factor w/ 31 levels "1009","1022",..: 14 21 3 2 17 9 22 13 1 19 ...
##   ..$ DRB  : Factor w/ 30 levels "2397","2399",..: 22 28 19 27 26 27 15 8 24 29 ...
##   ..$ TRB  : Factor w/ 29 levels "3024","3128",..: 17 26 24 29 24 19 18 5 28 25 ...
##   ..$ AST  : Factor w/ 29 levels "1547","1563",..: 27 11 25 21 16 29 2 24 18 23 ...
##   ..$ STL  : Factor w/ 29 levels "454","499","541",..: 24 14 27 1 20 11 23 25 13 17 ...
##   ..$ BLK  : Factor w/ 28 levels "297","304","311",..: 18 26 1 16 27 21 12 9 25 20 ...
##   ..$ TOV  : Factor w/ 31 levels "1010","1063",..: 7 30 8 5 26 11 27 3 29 23 ...
##   ..$ PF   : Factor w/ 30 levels "1493","1495",..: 20 14 3 6 28 2 23 10 30 22 ...
##   ..$ PTS  : Factor w/ 31 levels "7680","7791",..: 31 30 29 28 27 26 25 24 23 22 ...
##   ..$ PTS/G: Factor w/ 29 levels "100.5","100.7",..: 16 15 14 13 12 11 10 9 8 7 ...
##  $ opponent    :'data.frame':    31 obs. of  26 variables:
##   ..$ Rk   : Factor w/ 31 levels "","1","10","11",..: 2 13 24 26 27 28 29 30 31 3 ...
##   ..$ Team : Factor w/ 31 levels "Atlanta Hawks*",..: 5 12 16 4 17 28 29 21 31 10 ...
##   ..$ G    : Factor w/ 1 level "82": 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ MP   : Factor w/ 13 levels "19705","19730",..: 11 4 5 10 9 3 12 8 13 6 ...
##   ..$ FG   : Factor w/ 30 levels "2850","2867",..: 2 1 3 10 6 15 5 4 11 9 ...
##   ..$ FGA  : Factor w/ 31 levels "6401","6475",..: 9 14 3 17 2 26 6 1 7 23 ...
##   ..$ FG%  : Factor w/ 22 levels ".420",".430",..: 2 1 8 5 13 7 8 14 14 3 ...
##   ..$ 3P   : Factor w/ 29 levels "529","534","538",..: 3 3 12 19 23 1 6 27 11 7 ...
##   ..$ 3PA  : Factor w/ 31 levels "1500","1504",..: 3 5 11 17 27 1 6 28 12 9 ...
##   ..$ 3P%  : Factor w/ 23 levels ".332",".341",..: 6 4 8 18 14 7 12 20 5 3 ...
##   ..$ 2P   : Factor w/ 30 levels "2221","2267",..: 7 5 4 9 2 26 10 1 14 16 ...
##   ..$ 2PA  : Factor w/ 31 levels "4480","4558",..: 21 24 6 15 2 29 14 1 8 26 ...
##   ..$ 2P%  : Factor w/ 26 levels ".443",".454",..: 2 1 10 4 17 5 8 16 18 3 ...
##   ..$ FT   : Factor w/ 30 levels "1244","1251",..: 3 6 5 2 9 4 24 25 14 23 ...
##   ..$ FTA  : Factor w/ 31 levels "1645","1649",..: 3 6 4 2 10 5 25 24 13 21 ...
##   ..$ FT%  : Factor w/ 20 levels ".727",".737",..: 7 9 18 13 4 14 6 17 17 17 ...
##   ..$ ORB  : Factor w/ 31 levels "1011","1068",..: 15 11 4 3 19 13 10 8 6 16 ...
##   ..$ DRB  : Factor w/ 30 levels "2403","2420",..: 6 7 1 28 2 15 5 15 20 24 ...
##   ..$ TRB  : Factor w/ 30 levels "3212","3306",..: 7 5 1 21 2 12 4 10 11 20 ...
##   ..$ AST  : Factor w/ 31 levels "1525","1604",..: 2 1 4 9 12 6 10 3 19 8 ...
##   ..$ STL  : Factor w/ 31 levels "513","514","570",..: 14 8 7 2 24 15 9 1 17 23 ...
##   ..$ BLK  : Factor w/ 30 levels "256","277","284",..: 28 14 20 22 1 15 11 2 7 10 ...
##   ..$ TOV  : Factor w/ 30 levels "1034","1090",..: 13 4 10 2 28 5 17 15 26 19 ...
##   ..$ PF   : Factor w/ 31 levels "1500","1553",..: 22 26 2 23 15 6 27 9 8 5 ...
##   ..$ PTS  : Factor w/ 31 levels "7528","7572",..: 1 2 3 4 5 6 7 8 9 10 ...
##   ..$ PTS/G: Factor w/ 26 levels "100.7","101.0",..: 17 18 19 20 21 22 23 24 24 25 ...
##  $ misc        :'data.frame':    31 obs. of  24 variables:
##   ..$ Rk        : Factor w/ 31 levels "","1","10","11",..: 2 13 24 26 27 28 29 30 31 3 ...
##   ..$ Team      : Factor w/ 31 levels "Atlanta Hawks*",..: 28 14 22 10 11 26 17 12 19 25 ...
##   ..$ Age       : Factor w/ 24 levels "23.4","24.3",..: 22 18 12 13 7 10 24 16 13 12 ...
##   ..$ PW        : Factor w/ 25 levels "16","20","22",..: 25 24 23 22 21 20 22 22 18 18 ...
##   ..$ PL        : Factor w/ 25 levels "21","23","24",..: 1 2 3 4 5 6 4 4 8 8 ...
##   ..$ MOV       : Factor w/ 31 levels "-0.22","-0.48",..: 31 30 29 28 26 24 27 25 22 21 ...
##   ..$ SOS       : Factor w/ 29 levels "-0.21","-0.23",..: 16 17 18 19 23 22 9 13 21 20 ...
##   ..$ SRS       : Factor w/ 30 levels "-0.88","-0.89",..: 30 29 28 27 26 25 24 23 22 21 ...
##   ..$ ORtg      : Factor w/ 26 levels "101.7","102.5",..: 20 25 20 15 22 24 21 7 18 19 ...
##   ..$ DRtg      : Factor w/ 26 levels "100.5","102.4",..: 2 7 5 3 11 14 9 26 10 13 ...
##   ..$ Pace      : Factor w/ 28 levels "89.9","90.2",..: 19 22 20 23 24 18 4 9 25 21 ...
##   ..$ FTr       : Factor w/ 24 levels ".240",".247",..: 1 23 18 2 24 8 17 13 21 14 ...
##   ..$ 3PAr      : Factor w/ 27 levels ".171",".193",..: 13 21 16 21 27 20 22 7 10 23 ...
##   ..$ TS%       : Factor w/ 27 levels ".510",".514",..: 26 25 24 19 26 18 27 11 11 22 ...
##   ..$ eFG%      : Factor w/ 27 levels ".471",".475",..: 26 24 23 21 25 16 27 10 8 22 ...
##   ..$ TOV%      : Factor w/ 20 levels "11.7","12.2",..: 10 5 15 13 19 3 19 18 2 15 ...
##   ..$ ORB%      : Factor w/ 25 levels "20.2","20.6",..: 7 11 16 12 20 23 2 10 20 15 ...
##   ..$ FT/FGA    : Factor w/ 25 levels ".181",".184",..: 4 24 21 3 25 15 18 17 22 16 ...
##   ..$ eFG%      : Factor w/ 26 levels ".460",".471",..: 4 5 6 3 7 6 19 1 24 10 ...
##   ..$ TOV%      : Factor w/ 21 levels "11.0","12.1",..: 7 14 15 12 4 1 21 8 18 15 ...
##   ..$ DRB%      : Factor w/ 27 levels "71.0","71.4",..: 24 5 20 23 11 16 7 26 14 9 ...
##   ..$ FT/FGA    : Factor w/ 28 levels ".177",".183",..: 3 17 16 18 6 7 12 9 1 25 ...
##   ..$ Arena     : Factor w/ 30 levels "","Air Canada Centre",..: 6 21 10 15 26 14 4 7 22 28 ...
##   ..$ Attendance: Factor w/ 31 levels "552,067","568,632",..: 23 25 21 26 19 27 28 17 4 7 ...
##  $ shooting    :'data.frame':    31 obs. of  28 variables:
##   ..$ Rk     : Factor w/ 31 levels "","1","10","11",..: 2 13 24 26 27 28 29 30 31 3 ...
##   ..$ Team   : Factor w/ 31 levels "Atlanta Hawks*",..: 1 2 3 4 5 6 7 8 9 10 ...
##   ..$ G      : Factor w/ 1 level "82": 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ MP     : Factor w/ 13 levels "19705","19730",..: 6 2 9 10 11 11 6 3 4 6 ...
##   ..$ FG%    : Factor w/ 21 levels ".432",".435",..: 12 2 13 5 1 3 19 8 8 14 ...
##   ..$ Dist.  : Factor w/ 21 levels "11.1","11.3",..: 16 15 18 9 10 11 14 8 1 16 ...
##   ..$ 2P     : Factor w/ 27 levels ".670",".684",..: 2 16 4 24 23 20 11 10 23 7 ...
##   ..$ 0-3    : Factor w/ 28 levels ".226",".247",..: 8 12 5 18 19 11 7 21 28 9 ...
##   ..$ 3-10   : Factor w/ 28 levels ".112",".127",..: 16 6 15 8 6 14 10 19 24 17 ...
##   ..$ 10-16  : Factor w/ 26 levels ".049",".068",..: 10 15 18 22 18 24 26 3 2 9 ...
##   ..$ 16 
##   : Factor w/ 27 levels ".065",".111",..: 4 24 7 23 26 19 11 5 6 10 ...
##   ..$ 3P     : Factor w/ 27 levels ".171",".193",..: 26 12 24 4 5 8 17 18 5 21 ...
##   ..$ 2P     : Factor w/ 26 levels ".456",".461",..: 19 5 18 4 1 2 21 11 13 17 ...
##   ..$ 0-3    : Factor w/ 26 levels ".583",".584",..: 15 6 14 6 3 1 19 11 13 18 ...
##   ..$ 3-10   : Factor w/ 28 levels ".334",".344",..: 21 3 23 24 1 14 26 10 2 17 ...
##   ..$ 10-16  : Factor w/ 26 levels ".348",".351",..: 18 21 23 16 5 12 22 2 4 13 ...
##   ..$ 16 
##   : Factor w/ 26 levels ".343",".348",..: 20 16 17 3 12 15 26 5 2 19 ...
##   ..$ 3P     : Factor w/ 23 levels ".312",".321",..: 15 3 17 7 6 10 22 12 2 20 ...
##   ..$ %Ast'd : Factor w/ 29 levels ".388",".450",..: 28 13 6 21 29 14 16 15 7 22 ...
##   ..$ %FGA   : Factor w/ 24 levels ".026",".030",..: 1 7 17 8 4 12 14 21 17 18 ...
##   ..$ Md.    : Factor w/ 27 levels "154","180","204",..: 1 8 18 9 4 12 17 24 21 22 ...
##   ..$ %FGA   : Factor w/ 26 levels ".177",".185",..: 17 11 6 18 21 10 8 16 25 3 ...
##   ..$ Md.    : Factor w/ 29 levels "1018","1027",..: 28 17 10 23 24 13 21 26 7 12 ...
##   ..$ %Ast'd : Factor w/ 29 levels ".715",".753",..: 22 18 26 24 19 10 20 7 4 2 ...
##   ..$ %3PA   : Factor w/ 28 levels ".182",".193",..: 21 13 14 6 7 19 3 12 18 12 ...
##   ..$ 3P%    : Factor w/ 28 levels ".331",".332",..: 12 15 16 6 11 7 25 27 19 26 ...
##   ..$ Att.   : Factor w/ 16 levels "10","11","12",..: 4 7 11 9 11 10 7 11 13 12 ...
##   ..$ Md.    : Factor w/ 5 levels "0","0.5","1",..: 3 1 1 1 5 1 1 1 1 1 ...
##  $ shooting_opp:'data.frame':    31 obs. of  26 variables:
##   ..$ Rk     : Factor w/ 31 levels "","1","10","11",..: 2 13 24 26 27 28 29 30 31 3 ...
##   ..$ Team   : Factor w/ 31 levels "Atlanta Hawks*",..: 1 2 3 4 5 6 7 8 9 10 ...
##   ..$ G      : Factor w/ 1 level "82": 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ MP     : Factor w/ 13 levels "19705","19730",..: 6 2 9 10 11 11 6 3 4 6 ...
##   ..$ FG%    : Factor w/ 22 levels ".420",".430",..: 16 18 14 5 2 10 17 13 20 3 ...
##   ..$ Dist.  : Factor w/ 15 levels "12.0","12.1",..: 10 2 10 11 11 15 8 4 6 11 ...
##   ..$ 2P     : Factor w/ 24 levels ".696",".700",..: 13 21 8 12 22 1 6 18 9 20 ...
##   ..$ 0-3    : Factor w/ 27 levels ".236",".248",..: 14 27 15 12 7 5 15 17 25 2 ...
##   ..$ 3-10   : Factor w/ 22 levels ".140",".143",..: 4 10 11 8 6 3 12 16 7 18 ...
##   ..$ 10-16  : Factor w/ 21 levels ".084",".086",..: 7 12 3 10 19 13 5 17 1 20 ...
##   ..$ 16 
##   : Factor w/ 25 levels ".147",".152",..: 22 13 11 18 25 10 5 8 6 21 ...
##   ..$ 3P     : Factor w/ 24 levels ".209",".215",..: 12 4 17 13 3 24 19 7 16 5 ...
##   ..$ 2P     : Factor w/ 26 levels ".443",".454",..: 17 19 15 4 2 13 22 14 25 3 ...
##   ..$ 0-3    : Factor w/ 27 levels ".558",".591",..: 10 14 9 4 5 21 25 12 22 17 ...
##   ..$ 3-10   : Factor w/ 25 levels ".355",".356",..: 22 16 20 2 5 14 11 10 6 3 ...
##   ..$ 10-16  : Factor w/ 23 levels ".352",".358",..: 14 23 13 22 17 4 12 20 5 11 ...
##   ..$ 16 
##   : Factor w/ 24 levels ".366",".368",..: 22 9 12 11 1 10 13 17 24 10 ...
##   ..$ 3P     : Factor w/ 23 levels ".332",".341",..: 16 5 17 18 6 17 11 6 16 3 ...
##   ..$ %Ast'd : Factor w/ 30 levels ".464",".469",..: 22 23 15 8 9 30 14 11 27 7 ...
##   ..$ %FGA   : Factor w/ 17 levels ".034",".038",..: 5 11 10 1 2 6 16 12 13 2 ...
##   ..$ Md.    : Factor w/ 27 levels "211","239","240",..: 10 20 15 1 3 11 25 23 21 2 ...
##   ..$ %FGA   : Factor w/ 22 levels ".200",".206",..: 14 22 17 15 11 2 9 13 21 1 ...
##   ..$ Md.    : Factor w/ 29 levels "1015","1084",..: 20 26 17 15 5 10 14 22 1 4 ...
##   ..$ %Ast'd : Factor w/ 26 levels ".781",".790",..: 21 9 6 15 10 23 17 12 21 18 ...
##   ..$ %3PA   : Factor w/ 27 levels ".199",".204",..: 18 5 11 4 3 17 26 21 20 3 ...
##   ..$ 3P%    : Factor w/ 25 levels ".348",".351",..: 23 3 12 7 9 20 5 21 15 16 ...
##  $ NULL        :'data.frame':    4 obs. of  2 variables:
##   ..$ Most Valuable Player:: Factor w/ 4 levels "Defensive Player of the Year:",..: 3 1 2 4
##   ..$ Kevin Durant         : Factor w/ 4 levels "Goran Dragic",..: 4 3 1 2
##  $ NULL        :'data.frame':    70 obs. of  3 variables:
##   ..$ V1: Factor w/ 38 levels "&nbsp","Â","Apr",..: 37 36 2 33 2 34 2 35 2 38 ...
##   ..$ V2: Factor w/ 2 levels "E","W": NA 1 2 1 2 1 2 1 2 NA ...
##   ..$ V3: Factor w/ 58 levels "Al Jefferson21.8/11.3/1.8",..: NA 49 37 53 48 47 6 23 41 NA ...
##  $ NULL        :'data.frame':    11 obs. of  3 variables:
##   ..$ V1: Factor w/ 8 levels "&nbsp","Â","Nov",..: 7 2 4 2 5 2 6 2 8 3 ...
##   ..$ V2: Factor w/ 2 levels "E","W": 1 2 1 2 1 2 1 2 NA 1 ...
##   ..$ V3: Factor w/ 10 levels "Blake Griffin25.0/11.7/3.3",..: 8 4 10 7 6 1 2 5 NA 9 ...
##  $ NULL        :'data.frame':    13 obs. of  3 variables:
##   ..$ V1: Factor w/ 9 levels "&nbsp","Â","Dec",..: 5 2 8 2 4 2 6 2 7 2 ...
##   ..$ V2: Factor w/ 2 levels "E","W": 1 2 1 2 1 2 1 2 1 2 ...
##   ..$ V3: Factor w/ 12 levels "Blake Griffin25.7/12.0/3.7",..: 12 5 4 9 8 10 3 1 2 7 ...
##  $ NULL        :'data.frame':    11 obs. of  3 variables:
##   ..$ V1: Factor w/ 8 levels "&nbsp","Â","Jan",..: 7 2 4 2 5 2 6 2 8 3 ...
##   ..$ V2: Factor w/ 2 levels "E","W": 1 2 1 2 1 2 1 2 NA 1 ...
##   ..$ V3: Factor w/ 10 levels "Carmelo Anthony27.5/9.3/4.5",..: 10 3 1 4 8 7 9 6 NA 2 ...
##  $ NULL        :'data.frame':    9 obs. of  3 variables:
##   ..$ V1: Factor w/ 7 levels "&nbsp","Â","Feb",..: 6 2 4 2 5 2 7 3 1
##   ..$ V2: Factor w/ 2 levels "E","W": 1 2 1 2 1 2 NA 1 2
##   ..$ V3: Factor w/ 8 levels "Blake Griffin30.0/10.7/3.8",..: 7 2 3 5 4 6 NA 8 1
##  $ NULL        :'data.frame':    13 obs. of  3 variables:
##   ..$ V1: Factor w/ 9 levels "&nbsp","Â","Mar",..: 7 2 4 2 5 2 6 2 8 2 ...
##   ..$ V2: Factor w/ 2 levels "E","W": 1 2 1 2 1 2 1 2 1 2 ...
##   ..$ V3: Factor w/ 12 levels "Al Jefferson21.8/11.3/1.8",..: 8 5 4 6 1 3 7 10 11 12 ...
##  $ NULL        :'data.frame':    7 obs. of  3 variables:
##   ..$ V1: Factor w/ 6 levels "&nbsp","Â","Apr",..: 5 2 4 2 6 3 1
##   ..$ V2: Factor w/ 2 levels "E","W": 1 2 1 2 NA 1 2
##   ..$ V3: Factor w/ 6 levels "Al Jefferson22.9/12.9/1.7",..: 2 3 4 5 NA 1 6
##  $ NULL        :'data.frame':    315 obs. of  4 variables:
##   ..$ Minutes Played1.Kevin Durant ▪ OKC31222.Monta Ellis ▪ DAL30233.DeMar DeRozan ▪ TOR30174.Carmelo Anthony ▪ NYK29825.John Wall ▪ WAS2980            : Factor w/ 68 levels "1.","2-Pt Field Goal Attempts",..: 39 1 7 11 12 13 32 1 7 11 ...
##   ..$ Field Goals1.Kevin Durant ▪ OKC8492.LeBron James ▪ MIA7673.Carmelo Anthony ▪ NYK7434.Blake Griffin ▪ LAC7185.Al Jefferson ▪ CHA700                : Factor w/ 71 levels "3-Pt Field Goal Pct1.Kyle Korver ▪ ATL.4722.Mike Miller ▪ MEM.4593.Anthony Morrow ▪ NOP.4514.Jose Calderon ▪ DA"| __truncated__,..: NA 40 51 24 14 34 NA 40 47 14 ...
##   ..$ Field Goal Attempts1.Kevin Durant ▪ OKC16882.Carmelo Anthony ▪ NYK16433.LaMarcus Aldridge ▪ POR14234.Kevin Love ▪ MIN14215.DeMar DeRozan ▪ TOR1407: Factor w/ 233 levels ".225",".245",..: NA 133 131 130 122 121 NA 213 200 199 ...
##   ..$ 2-Pt Field Goals1.Blake Griffin ▪ LAC7062.Al Jefferson ▪ CHA6973.Kevin Durant ▪ OKC6574.LeBron James ▪ MIA6515.LaMarcus Aldridge ▪ POR649         : Factor w/ 12 levels "Â","Assist Pct1.Chris Paul ▪ LAC48.92.Kendall Marshall ▪ LAL44.33.John Wall ▪ WAS40.54.Stephen Curry ▪ GSW39.95.Ty "| __truncated__,..: NA NA NA NA NA NA NA NA NA NA ...
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Carmelo Anthony ▪ NYK",..: 4 5 2 1 3
##   ..$ V3: Factor w/ 5 levels "2980","2982",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Al Jefferson ▪ CHA",..: 4 5 3 2 1
##   ..$ V3: Factor w/ 5 levels "700","718","743",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Carmelo Anthony ▪ NYK",..: 3 1 5 4 2
##   ..$ V3: Factor w/ 5 levels "1407","1421",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Al Jefferson ▪ CHA",..: 2 1 3 5 4
##   ..$ V3: Factor w/ 5 levels "649","651","657",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    6 obs. of  3 variables:
##   ..$ V1: Factor w/ 6 levels "1.","2.","3.",..: 1 2 3 4 5 6
##   ..$ V2: Factor w/ 6 levels "Al Jefferson ▪ CHA",..: 6 1 2 3 5 4
##   ..$ V3: Factor w/ 5 levels "1197","1228",..: 5 4 3 2 1 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Damian Lillard ▪ POR",..: 4 3 1 2 5
##   ..$ V3: Factor w/ 5 levels "201","204","218",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Damian Lillard ▪ POR",..: 4 1 3 5 2
##   ..$ V3: Factor w/ 5 levels "510","511","535",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    6 obs. of  3 variables:
##   ..$ V1: Factor w/ 6 levels "1.","2.","3.",..: 1 2 3 4 5 6
##   ..$ V2: Factor w/ 6 levels "Carmelo Anthony ▪ NYK",..: 1 3 2 6 4 5
##   ..$ V3: Factor w/ 5 levels "771","785","803",..: 5 4 3 2 1 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Blake Griffin ▪ LAC",..: 4 3 5 2 1
##   ..$ V3: Factor w/ 5 levels "482","519","520",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Blake Griffin ▪ LAC",..: 4 1 3 2 5
##   ..$ V3: Factor w/ 5 levels "633","638","665",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 1 2 4 3 5
##   ..$ V3: Factor w/ 5 levels "269","282","326",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Al Jefferson ▪ CHA",..: 3 5 1 4 2
##   ..$ V3: Factor w/ 5 levels "631","635","636",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 2 1 5 4 3
##   ..$ V3: Factor w/ 5 levels "1071","1114",..: 2 1 5 4 3
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Brandon Jennings ▪ DET",..: 3 4 5 2 1
##   ..$ V3: Factor w/ 5 levels "609","663","666",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 4 5 1 3 2
##   ..$ V3: Factor w/ 4 levels "151","154","167",..: 4 3 2 1 1
##  $ NULL        :'data.frame':    6 obs. of  3 variables:
##   ..$ V1: Factor w/ 6 levels "1.","2.","3.",..: 1 2 3 4 5 6
##   ..$ V2: Factor w/ 6 levels "Anthony Davis ▪ NOP",..: 5 2 1 4 6 3
##   ..$ V3: Factor w/ 5 levels "139","182","189",..: 5 4 3 2 1 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "James Harden ▪ HOU",..: 2 5 3 4 1
##   ..$ V3: Factor w/ 5 levels "265","270","285",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Amir Johnson ▪ TOR",..: 2 1 3 5 4
##   ..$ V3: Factor w/ 5 levels "267","269","270",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Blake Griffin ▪ LAC",..: 3 2 5 4 1
##   ..$ V3: Factor w/ 5 levels "1930","2010",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Amir Johnson ▪ TOR",..: 3 2 4 5 1
##   ..$ V3: Factor w/ 5 levels ".562",".567",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Amir Johnson ▪ TOR",..: 3 2 5 4 1
##   ..$ V3: Factor w/ 5 levels ".593",".594",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Anthony Morrow ▪ NOP",..: 3 5 1 2 4
##   ..$ V3: Factor w/ 5 levels ".430",".449",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Brian Roberts ▪ NOP",..: 1 3 5 4 2
##   ..$ V3: Factor w/ 5 levels ".885",".891",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Carmelo Anthony ▪ NYK",..: 1 4 5 2 3
##   ..$ V3: Factor w/ 4 levels "38.0","38.2",..: 4 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Carmelo Anthony ▪ NYK",..: 3 1 5 4 2
##   ..$ V3: Factor w/ 5 levels "25.4","26.1",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 2 1 5 4 3
##   ..$ V3: Factor w/ 5 levels "11.7","12.2",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 1 2 5 3 4
##   ..$ V3: Factor w/ 4 levels "10.7","8.5","8.6",..: 1 4 4 3 2
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 1 4 5 2 3
##   ..$ V3: Factor w/ 4 levels "1.9","2.1","2.3",..: 4 3 2 1 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Anthony Davis ▪ NOP",..: 1 4 2 3 5
##   ..$ V3: Factor w/ 5 levels "1.9","2.2","2.5",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Anthony Davis ▪ NOP",..: 3 5 4 1 2
##   ..$ V3: Factor w/ 5 levels "26.1","26.5",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "DeAndre Jordan ▪ LAC",..: 4 5 3 1 2
##   ..$ V3: Factor w/ 5 levels ".618",".630",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 2 1 5 3 4
##   ..$ V3: Factor w/ 5 levels ".584",".593",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 1 5 3 4 2
##   ..$ V3: Factor w/ 5 levels "13.3","13.6",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Al Jefferson ▪ CHA",..: 4 2 5 3 1
##   ..$ V3: Factor w/ 5 levels "28.3","29.3",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 1 3 2 4 5
##   ..$ V3: Factor w/ 5 levels "20.1","20.4",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 1 3 2 4 5
##   ..$ V3: Factor w/ 5 levels "38.2","39.9",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 4 1 2 5 3
##   ..$ V3: Factor w/ 4 levels "2.9","3.0","3.5",..: 4 3 2 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andrew Bogut ▪ GSW",..: 2 5 4 3 1
##   ..$ V3: Factor w/ 4 levels "5.2","5.4","5.7",..: 4 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Dante Cunningham ▪ MIN",..: 2 5 3 1 4
##   ..$ V3: Factor w/ 4 levels "5.4","5.9","7.2",..: 1 2 3 3 4
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Carmelo Anthony ▪ NYK",..: 3 2 1 5 4
##   ..$ V3: Factor w/ 5 levels "29.8","31.0",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andre Drummond ▪ DET",..: 5 2 4 1 3
##   ..$ V3: Factor w/ 5 levels "120.8","121.2",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andrew Bogut ▪ GSW",..: 3 1 4 5 2
##   ..$ V3: Factor w/ 5 levels "95.8","96.3",..: 1 2 3 4 5
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "James Harden ▪ HOU",..: 2 4 3 1 5
##   ..$ V3: Factor w/ 5 levels "10.1","10.6",..: 4 3 2 1 5
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "David West ▪ IND",..: 3 4 2 1 5
##   ..$ V3: Factor w/ 4 levels "5.0","5.8","6.4",..: 4 3 2 1 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "James Harden ▪ HOU",..: 2 4 3 5 1
##   ..$ V3: Factor w/ 5 levels "12.8","13.4",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 2 1 4 3 5
##   ..$ V3: Factor w/ 5 levels ".225",".245",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 4 2 3 5 1
##   ..$ V3: Factor w/ 5 levels "6.9","7.1","7.9",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Chris Paul ▪ LAC",..: 2 4 5 3 1
##   ..$ V3: Factor w/ 5 levels "6.6","7.0","7.2",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Andrew Bogut ▪ GSW",..: 4 1 3 2 5
##   ..$ V3: Factor w/ 5 levels "3.7","3.8","4.0",..: 5 4 3 2 1
##  $ NULL        :'data.frame':    5 obs. of  3 variables:
##   ..$ V1: Factor w/ 5 levels "1.","2.","3.",..: 1 2 3 4 5
##   ..$ V2: Factor w/ 5 levels "Joakim Noah ▪ CHI",..: 2 4 3 5 1
##   ..$ V3: Factor w/ 5 levels "5.8","6.5","7.0",..: 5 4 3 2 1
##  $ NULL        : NULL
##  $ NULL        : NULL
##  $ NULL        : NULL
##  $ NULL        : NULL
dfctr <- 0
for(i in 1:length(hardpage))
{
  #print(hvalues[i])
  if (is.data.frame(getElement(hardpage,i))==T)
  {
    dfctr<-dfctr+1
  }
}
sprintf("dataframes count in hardpage is %i",dfctr)
## [1] "dataframes count in hardpage is 83"

8 Identify your web browser, and describe (in one or two sentences) how you view HTML page source in your web browser.

Answer:- I use Google Chrome as it is supposed to be better than internet explorer. I can view the page source by couple of ways - 1) rightclick -> ViewPageSource 2) rightclick -> Inspectelement

9 (Optional challenge exercise)

Instead of using readHTMLTable from the XML package, use the functionality in the rvest package to perform the same task.

Which method do you prefer? Why might one prefer one package over the other?

Answer:- rvest seems to be little bit easier but I am at the low point of the learning curve with both methods. So, both consumed a lot of time.

#install.packages("rvest")
library(rvest)
## Warning: package 'rvest' was built under R version 3.1.3
## 
## Attaching package: 'rvest'
## 
## The following object is masked from 'package:XML':
## 
##     xml
theURL <- "http://www.w3schools.com/html/html_tables.asp"
optionalpage <- html(theURL)
str(optionalpage)
## Classes 'HTMLInternalDocument', 'HTMLInternalDocument', 'XMLInternalDocument', 'XMLAbstractDocument' <externalptr>
x <- optionalpage %>% html_node("table") %>% html_table()
theURL <- "http://www.basketball-reference.com/leagues/NBA_2014.html"
optionalpage <- html(theURL)
str(optionalpage)
## Classes 'HTMLInternalDocument', 'HTMLInternalDocument', 'XMLInternalDocument', 'XMLAbstractDocument' <externalptr>
x <- optionalpage %>% html_nodes("table") 
length(x)
## [1] 87
html_table(x[3])
## [[1]]
##             Western Conference  W  L  W/L%   GB  PS/G  PA/G   SRS
## 1           Northwest Division NA NA    NA         NA    NA    NA
## 2   Oklahoma City Thunder* (2) 59 23 0.720    — 106.2  99.8  6.66
## 3  Portland Trail Blazers* (4) 54 28 0.659  5.0 106.7 102.8  4.44
## 4  Minnesota Timberwolves (10) 40 42 0.488 19.0 106.9 104.3  3.10
## 5          Denver Nuggets (11) 36 46 0.439 23.0 104.4 106.5 -1.40
## 6               Utah Jazz (15) 25 57 0.305 34.0  95.0 102.2 -6.27
## 7             Pacific Division NA NA    NA         NA    NA    NA
## 8    Los Angeles Clippers* (3) 57 25 0.695    — 107.9 101.0  7.27
## 9   Golden State Warriors* (6) 51 31 0.622  6.0 104.3  99.5  5.15
## 10            Phoenix Suns (9) 48 34 0.585  9.0 105.2 102.6  3.02
## 11       Sacramento Kings (13) 28 54 0.341 29.0 100.5 103.4 -2.08
## 12     Los Angeles Lakers (14) 27 55 0.329 30.0 103.0 109.2 -5.33
## 13          Southwest Division NA NA    NA         NA    NA    NA
## 14      San Antonio Spurs* (1) 62 20 0.756    — 105.4  97.6  8.00
## 15        Houston Rockets* (4) 54 28 0.659  8.0 107.7 103.1  5.06
## 16      Memphis Grizzlies* (7) 50 32 0.610 12.0  96.1  94.6  2.18
## 17       Dallas Mavericks* (8) 49 33 0.598 13.0 104.8 102.4  2.91
## 18   New Orleans Pelicans (12) 34 48 0.415 28.0  99.7 102.4 -1.98