Unit 2: EDA Cleaning

Author

Key

Published

January 31, 2024

Packages, source functions, conflicts

This code chunk sets up conflict policies to reduce errors associated with function conflicts

options(conflicts.policy = "depends.ok") # deals with package conflicts
devtools::source_url("https://github.com/jjcurtin/lab_support/blob/main/fun_ml.R?raw=true") # source functions
tidymodels_conflictRules() # deals with package conflicts

This code chunk loads all packages needed for this assignment. Note that we didn’t load the janitor package here. You use its clean_names() function later but you can use that without loading the package by pre-pending the namespace when calling it (i.e., janitor::clean_names()). Make sure only these packages are loaded to avoid conflicts

library(tidyverse) 
library(tidymodels)

You may also use the EDA and plotting functions that John shares on his lab_support repo. You can source the scripts that contain those functions directly from Github with the code below (note that you may need to install the devtools package if you haven’t done this previously).

devtools::source_url("https://github.com/jjcurtin/lab_support/blob/main/fun_eda.R?raw=true")
devtools::source_url("https://github.com/jjcurtin/lab_support/blob/main/fun_plots.R?raw=true")

Set up some other environment settings

options(tibble.width = Inf, tibble.print_max = Inf)
theme_set(theme_classic()) 

Read and Setup Dataframe

Read Data

In the chunk below, set the variable path_data to the location of your data files. Make sure you have your iaml project open in RStudio. When you call here::here() it will set your root path to be inside of the iaml folder. Assuming you have a subfolder called homework and a folder within that folder called unit_02, path_data will work as set. If you have some other organization, you will need to modify path_data to reflect that folder structure.

path_data <- "homework/unit_02"

This assignment will use the Ames Housing Prices Dataset (also seen in Unit 2 of the course text).

Read in the ames_raw_class.csv data below.

ames_all <- read_csv(here::here(path_data, "ames_raw_class.csv"), 
                     col_types = cols()) |> 
  glimpse()
Rows: 1,955
Columns: 81
$ PID               <chr> "0526301100", "0526350040", "0526351010", "052710501…
$ `MS SubClass`     <chr> "020", "020", "020", "060", "120", "120", "120", "06…
$ `MS Zoning`       <chr> "RL", "RH", "RL", "RL", "RL", "RL", "RL", "RL", "RL"…
$ `Lot Frontage`    <dbl> 141, 80, 81, 74, 41, 43, 39, 60, 75, 63, 85, NA, 47,…
$ `Lot Area`        <dbl> 31770, 11622, 14267, 13830, 4920, 5005, 5389, 7500, …
$ Street            <chr> "Pave", "Pave", "Pave", "Pave", "Pave", "Pave", "Pav…
$ Alley             <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ `Lot Shape`       <chr> "IR1", "Reg", "IR1", "IR1", "Reg", "IR1", "IR1", "Re…
$ `Land Contour`    <chr> "Lvl", "Lvl", "Lvl", "Lvl", "Lvl", "HLS", "Lvl", "Lv…
$ Utilities         <chr> "AllPub", "AllPub", "AllPub", "AllPub", "AllPub", "A…
$ `Lot Config`      <chr> "Corner", "Inside", "Corner", "Inside", "Inside", "I…
$ `Land Slope`      <chr> "Gtl", "Gtl", "Gtl", "Gtl", "Gtl", "Gtl", "Gtl", "Gt…
$ Neighborhood      <chr> "NAmes", "NAmes", "NAmes", "Gilbert", "StoneBr", "St…
$ `Condition 1`     <chr> "Norm", "Feedr", "Norm", "Norm", "Norm", "Norm", "No…
$ `Condition 2`     <chr> "Norm", "Norm", "Norm", "Norm", "Norm", "Norm", "Nor…
$ `Bldg Type`       <chr> "1Fam", "1Fam", "1Fam", "1Fam", "TwnhsE", "TwnhsE", …
$ `House Style`     <chr> "1Story", "1Story", "1Story", "2Story", "1Story", "1…
$ `Overall Qual`    <dbl> 6, 5, 6, 5, 8, 8, 8, 7, 6, 6, 7, 8, 8, 8, 9, 4, 6, 6…
$ `Overall Cond`    <dbl> 5, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 2, 5, 6, 6…
$ `Year Built`      <dbl> 1960, 1961, 1958, 1997, 2001, 1992, 1995, 1999, 1993…
$ `Year Remod/Add`  <dbl> 1960, 1961, 1958, 1998, 2001, 1992, 1996, 1999, 1994…
$ `Roof Style`      <chr> "Hip", "Gable", "Hip", "Gable", "Gable", "Gable", "G…
$ `Roof Matl`       <chr> "CompShg", "CompShg", "CompShg", "CompShg", "CompShg…
$ `Exterior 1st`    <chr> "BrkFace", "VinylSd", "Wd Sdng", "VinylSd", "CemntBd…
$ `Exterior 2nd`    <chr> "Plywood", "VinylSd", "Wd Sdng", "VinylSd", "CmentBd…
$ `Mas Vnr Type`    <chr> "Stone", "None", "BrkFace", "None", "None", "None", …
$ `Mas Vnr Area`    <dbl> 112, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 603, 0, 350,…
$ `Exter Qual`      <chr> "TA", "TA", "TA", "TA", "Gd", "Gd", "Gd", "TA", "TA"…
$ `Exter Cond`      <chr> "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA"…
$ Foundation        <chr> "CBlock", "CBlock", "CBlock", "PConc", "PConc", "PCo…
$ `Bsmt Qual`       <chr> "TA", "TA", "TA", "Gd", "Gd", "Gd", "Gd", "TA", "Gd"…
$ `Bsmt Cond`       <chr> "Gd", "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA"…
$ `Bsmt Exposure`   <chr> "Gd", "No", "No", "No", "Mn", "No", "No", "No", "No"…
$ `BsmtFin Type 1`  <chr> "BLQ", "Rec", "ALQ", "GLQ", "GLQ", "ALQ", "GLQ", "Un…
$ `BsmtFin SF 1`    <dbl> 639, 468, 923, 791, 616, 263, 1180, 0, 0, 0, 637, 36…
$ `BsmtFin Type 2`  <chr> "Unf", "LwQ", "Unf", "Unf", "Unf", "Unf", "Unf", "Un…
$ `BsmtFin SF 2`    <dbl> 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0,…
$ `Bsmt Unf SF`     <dbl> 441, 270, 406, 137, 722, 1017, 415, 994, 763, 789, 6…
$ `Total Bsmt SF`   <dbl> 1080, 882, 1329, 928, 1338, 1280, 1595, 994, 763, 78…
$ Heating           <chr> "GasA", "GasA", "GasA", "GasA", "GasA", "GasA", "Gas…
$ `Heating QC`      <chr> "Fa", "TA", "TA", "Gd", "Ex", "Ex", "Ex", "Gd", "Gd"…
$ `Central Air`     <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y…
$ Electrical        <chr> "SBrkr", "SBrkr", "SBrkr", "SBrkr", "SBrkr", "SBrkr"…
$ `1st Flr SF`      <dbl> 1656, 896, 1329, 928, 1338, 1280, 1616, 1028, 763, 7…
$ `2nd Flr SF`      <dbl> 0, 0, 0, 701, 0, 0, 0, 776, 892, 676, 0, 0, 1589, 67…
$ `Low Qual Fin SF` <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ `Gr Liv Area`     <dbl> 1656, 896, 1329, 1629, 1338, 1280, 1616, 1804, 1655,…
$ `Bsmt Full Bath`  <dbl> 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0…
$ `Bsmt Half Bath`  <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ `Full Bath`       <dbl> 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 2…
$ `Half Bath`       <dbl> 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0…
$ `Bedroom AbvGr`   <dbl> 3, 2, 3, 3, 2, 2, 2, 3, 3, 3, 2, 1, 4, 4, 1, 2, 3, 3…
$ `Kitchen AbvGr`   <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ `Kitchen Qual`    <chr> "TA", "TA", "Gd", "TA", "Gd", "Gd", "Gd", "Gd", "TA"…
$ `TotRms AbvGrd`   <dbl> 7, 5, 6, 6, 6, 5, 5, 7, 7, 7, 5, 4, 12, 8, 8, 4, 7, …
$ Functional        <chr> "Typ", "Typ", "Typ", "Typ", "Typ", "Typ", "Typ", "Ty…
$ Fireplaces        <dbl> 2, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1…
$ `Fireplace Qu`    <chr> "Gd", NA, NA, "TA", NA, NA, "TA", "TA", "TA", "Gd", …
$ `Garage Type`     <chr> "Attchd", "Attchd", "Attchd", "Attchd", "Attchd", "A…
$ `Garage Yr Blt`   <dbl> 1960, 1961, 1958, 1997, 2001, 1992, 1995, 1999, 1993…
$ `Garage Finish`   <chr> "Fin", "Unf", "Unf", "Fin", "Fin", "RFn", "RFn", "Fi…
$ `Garage Cars`     <dbl> 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2…
$ `Garage Area`     <dbl> 528, 730, 312, 482, 582, 506, 608, 442, 440, 393, 50…
$ `Garage Qual`     <chr> "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA"…
$ `Garage Cond`     <chr> "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA", "TA"…
$ `Paved Drive`     <chr> "P", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y…
$ `Wood Deck SF`    <dbl> 210, 140, 393, 212, 0, 0, 237, 140, 157, 0, 192, 0, …
$ `Open Porch SF`   <dbl> 62, 0, 36, 34, 0, 82, 152, 60, 84, 75, 0, 54, 36, 12…
$ `Enclosed Porch`  <dbl> 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ `3Ssn Porch`      <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ `Screen Porch`    <dbl> 0, 120, 0, 0, 0, 144, 0, 0, 0, 0, 0, 140, 210, 0, 0,…
$ `Pool Area`       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ `Pool QC`         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ Fence             <chr> NA, "MnPrv", NA, "MnPrv", NA, NA, NA, NA, NA, NA, NA…
$ `Misc Feature`    <chr> NA, NA, "Gar2", NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ `Misc Val`        <dbl> 0, 0, 12500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
$ `Mo Sold`         <dbl> 5, 6, 6, 3, 4, 1, 3, 6, 4, 5, 2, 6, 6, 6, 6, 6, 2, 1…
$ `Yr Sold`         <dbl> 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010…
$ `Sale Type`       <chr> "WD", "WD", "WD", "WD", "WD", "WD", "WD", "WD", "WD"…
$ `Sale Condition`  <chr> "Normal", "Normal", "Normal", "Normal", "Normal", "N…
$ SalePrice         <dbl> 215000, 105000, 172000, 189900, 213500, 191500, 2365…

Select variables

We explore a different set of variables than those demoed in the course text. select() from the dataset for the variables below and convert all variable names to “snake_case”:

select() predictors for this assignment and convert all variable names to snake_case:

SalePrice, Garage Area, Neighborhood, MS SubClass, Total Bsmt SF, Bsmt Qual, Central Air, TotRms AbvGrd, Fireplaces, and Fireplace Qu.

Notice use of back-tick in the following code chunk for non-standard variable names (i.e., names that aren’t machine readable due to having a space in them).

ames_all <- ames_all |> 
  select(SalePrice,
         `Garage Area`, 
         `Neighborhood`, 
         `MS SubClass`,
         `Total Bsmt SF`, 
         `Bsmt Qual`,
         `Central Air`,
         `TotRms AbvGrd`,
         `Fireplaces`,
         `Fireplace Qu`) |> 
  janitor::clean_names("snake") |> 
  mutate(across(where(is.character), factor)) |>
  glimpse()
Rows: 1,955
Columns: 10
$ sale_price      <dbl> 215000, 105000, 172000, 189900, 213500, 191500, 236500…
$ garage_area     <dbl> 528, 730, 312, 482, 582, 506, 608, 442, 440, 393, 506,…
$ neighborhood    <fct> NAmes, NAmes, NAmes, Gilbert, StoneBr, StoneBr, StoneB…
$ ms_sub_class    <fct> 020, 020, 020, 060, 120, 120, 120, 060, 060, 060, 020,…
$ total_bsmt_sf   <dbl> 1080, 882, 1329, 928, 1338, 1280, 1595, 994, 763, 789,…
$ bsmt_qual       <fct> TA, TA, TA, Gd, Gd, Gd, Gd, TA, Gd, Gd, Gd, Gd, Gd, Gd…
$ central_air     <fct> Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, …
$ tot_rms_abv_grd <dbl> 7, 5, 6, 6, 6, 5, 5, 7, 7, 7, 5, 4, 12, 8, 8, 4, 7, 7,…
$ fireplaces      <dbl> 2, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1, …
$ fireplace_qu    <fct> Gd, NA, NA, TA, NA, NA, TA, TA, TA, Gd, Po, NA, Gd, NA…

Review the data dictionary

Familiarize yourself with the variables we use above by looking each one up in the data dictionary downloaded with your homework files. Reference the codebook frequently as you perform cleaning checks below.

Exploring the data for cleaning

This script should only contain EDA steps necessary for cleaning the full dataset (i.e., not subsets of it that will be allocated for train, validation, or test). Be mindful of which aspects of the data set you explore at this stage to prevent information leakage between later training and validation sets (to be saved out as the final step of cleaning in this document). Provide observations at each stage of the process, even if you do not make any changes.

Remember that you can use glimpse(), skim_some(), print(), head(), and/or kable tables to explore and display your data. Everything that you need to do has been demonstrated in the web book.

Variable classes

Confirm that all variables are read in as the expected class. Remember that we class nominal and ordinal variables as factors and interval and ratio variables as numeric. Below the code chunk, type some observations you have about the observed variable classes compared to descriptions in the data dictionary. Make any appropriate adjustments to variable class below using mutate(), factor(), or as.numeric(). We did this above when selecting variables

ames_all |> 
  skim_some() 
Data summary
Name ames_all
Number of rows 1955
Number of columns 10
_______________________
Column type frequency:
factor 5
numeric 5
________________________
Group variables None

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
neighborhood 0 1.00 FALSE 28 NAm: 299, Col: 174, Old: 161, Edw: 135
ms_sub_class 0 1.00 FALSE 16 020: 730, 060: 388, 050: 208, 120: 122
bsmt_qual 57 0.97 FALSE 4 TA: 861, Gd: 808, Ex: 167, Fa: 62
central_air 0 1.00 FALSE 2 Y: 1821, N: 134
fireplace_qu 960 0.51 FALSE 5 Gd: 481, TA: 407, Fa: 44, Po: 33

Variable type: numeric

skim_variable n_missing complete_rate p0 p100
sale_price 0 1 12789 745000
garage_area 1 1 0 1488
total_bsmt_sf 1 1 0 6110
tot_rms_abv_grd 0 1 3 14
fireplaces 0 1 0 3

Variable class notes: All variables are either of type factor or of type numeric. We will think more carefully about the factors, etc. in the eda_modeling script. The classes as they were read in match the codebook. Though ms_sub_class is a character variable containing numeric values, the codebook tells us that these numeric codes are nominal values representing different classes of dwellings, indicating that this variable is best kept as factor.

Missing data

Clearly document missing data (“missingness”) across each variable in the dataset. For variables with high missingness, write code that allows you to visually inspect all observations of missing data. Clean variables with high missingness using mutate(), replace_na(), and fct_relevel() if you believe any of the NAs are not really missing but instead problems with how the data were coded.

ames_all |> 
  skim_some() |> 
  select(skim_variable, n_missing, complete_rate) # view missing variables
# A tibble: 10 × 3
   skim_variable   n_missing complete_rate
   <chr>               <int>         <dbl>
 1 neighborhood            0         1    
 2 ms_sub_class            0         1    
 3 bsmt_qual              57         0.971
 4 central_air             0         1    
 5 fireplace_qu          960         0.509
 6 sale_price              0         1    
 7 garage_area             1         0.999
 8 total_bsmt_sf           1         0.999
 9 tot_rms_abv_grd         0         1    
10 fireplaces              0         1    
ames_all |> filter(is.na(bsmt_qual)) |>
  print_kbl()
sale_price garage_area neighborhood ms_sub_class total_bsmt_sf bsmt_qual central_air tot_rms_abv_grd fireplaces fireplace_qu
112000 539 Sawyer 090 0 NA Y 8 0 NA
55000 0 IDOTRR 190 0 NA N 7 0 NA
84900 240 Edwards 030 0 NA N 5 0 NA
100000 0 Edwards 090 0 NA N 8 0 NA
160000 612 SawyerW 090 0 NA Y 8 2 TA
102900 616 NAmes 020 0 NA Y 7 0 NA
92900 400 NAmes 090 0 NA N 6 0 NA
45000 308 OldTown 030 0 NA N 4 0 NA
139600 452 Edwards 020 0 NA Y 8 1 Gd
122000 498 Edwards 020 0 NA Y 6 0 NA
84000 290 Edwards 020 0 NA N 5 0 NA
131000 576 SawyerW 070 0 NA Y 7 1 TA
118964 410 SawyerW 090 0 NA Y 8 0 NA
147983 720 SawyerW 090 0 NA Y 8 0 NA
118858 400 SawyerW 090 0 NA Y 8 0 NA
142953 528 SawyerW 090 0 NA Y 12 0 NA
113722 400 SawyerW 090 0 NA Y 8 0 NA
198500 672 Edwards 085 0 NA Y 7 1 Ex
98000 240 Edwards 050 0 NA N 9 0 NA
82000 528 Edwards 020 0 NA N 4 0 NA
57625 280 IDOTRR 030 0 NA N 4 0 NA
126000 539 Mitchel 090 0 NA Y 8 0 NA
72500 287 BrkSide 020 0 NA N 4 0 NA
89900 390 OldTown 020 0 NA N 3 0 NA
106250 0 OldTown 190 0 NA N 7 0 NA
98300 420 NAmes 020 0 NA Y 7 0 NA
97000 308 OldTown 020 0 NA Y 4 0 NA
79000 280 BrkSide 020 NA NA Y 4 0 NA
81300 164 BrkSide 030 0 NA N 6 0 NA
134432 680 ClearCr 050 0 NA Y 7 1 Gd
82000 0 Edwards 090 0 NA N 6 0 NA
82000 0 Edwards 090 0 NA N 6 0 NA
82500 0 Edwards 090 0 NA N 6 0 NA
96000 0 Edwards 050 0 NA Y 8 0 NA
13100 487 IDOTRR 020 0 NA N 4 0 NA
100000 484 Mitchel 090 0 NA Y 8 0 NA
106500 294 NAmes 020 0 NA Y 5 0 NA
101800 462 NAmes 090 0 NA Y 6 0 NA
99000 300 NAmes 020 0 NA Y 7 0 NA
104500 331 OldTown 020 0 NA Y 5 0 NA
89500 460 Sawyer 020 0 NA N 5 0 NA
141000 579 Edwards 090 0 NA Y 11 0 NA
153500 400 Crawfor 020 0 NA Y 7 1 Gd
68104 256 IDOTRR 050 0 NA Y 4 0 NA
130000 1041 Mitchel 020 0 NA Y 9 0 NA
169000 672 Gilbert 060 0 NA Y 7 1 TA
157500 484 NAmes 020 0 NA Y 5 1 Gd
109500 625 NAmes 020 0 NA Y 5 0 NA
109900 420 NAmes 020 0 NA Y 4 0 NA
81400 400 NAmes 090 0 NA N 6 0 NA
87500 400 NAmes 090 0 NA N 6 0 NA
80500 0 BrkSide 050 0 NA N 3 0 NA
131000 394 Sawyer 020 0 NA Y 7 1 Gd
125000 260 Edwards 030 0 NA N 6 1 TA
135000 569 Edwards 020 0 NA Y 7 1 Ex
230000 312 GrnHill 120 0 NA Y 5 0 NA
81500 270 Mitchel 020 0 NA Y 6 0 NA
ames_all |> filter(is.na(fireplace_qu)) |> 
  print_kbl()
sale_price garage_area neighborhood ms_sub_class total_bsmt_sf bsmt_qual central_air tot_rms_abv_grd fireplaces fireplace_qu
105000 730 NAmes 020 882 TA Y 5 0 NA
172000 312 NAmes 020 1329 TA Y 6 0 NA
213500 582 StoneBr 120 1338 Gd Y 6 0 NA
191500 506 StoneBr 120 1280 Gd Y 5 0 NA
212000 528 StoneBr 120 1488 Gd Y 4 0 NA
164000 492 Gilbert 050 559 Gd Y 8 0 NA
141000 400 Gilbert 020 864 TA Y 4 0 NA
216000 663 Somerst 060 814 Gd Y 7 0 NA
126000 525 NAmes 020 882 TA Y 4 0 NA
105500 320 BrDale 160 525 TA Y 6 0 NA
120000 308 NPkVill 120 836 Gd Y 4 0 NA
290941 868 NridgHt 020 1544 Gd Y 7 0 NA
175500 474 NridgHt 160 764 Gd Y 6 0 NA
160000 437 Blmngtn 120 1145 Gd Y 6 0 NA
221000 486 NoRidge 060 1195 Gd Y 7 0 NA
204500 676 Somerst 020 1218 Gd Y 4 0 NA
233000 618 SawyerW 060 956 Gd Y 8 0 NA
181000 484 SawyerW 060 831 Gd Y 8 0 NA
125000 264 SawyerW 120 744 Gd Y 4 0 NA
194500 457 SawyerW 060 996 Gd Y 7 0 NA
152000 480 SawyerW 020 1040 Gd Y 6 0 NA
67500 429 SawyerW 030 816 TA N 5 0 NA
112000 539 Sawyer 090 0 NA Y 8 0 NA
148000 576 Sawyer 085 1109 TA Y 6 0 NA
122000 280 Sawyer 020 882 TA Y 5 0 NA
127000 260 Sawyer 020 1040 TA Y 6 0 NA
190000 588 Somerst 160 840 Gd Y 3 0 NA
151000 480 Somerst 160 600 Gd Y 4 0 NA
149500 480 Somerst 160 600 Gd Y 4 0 NA
177500 440 Somerst 160 756 Gd Y 5 0 NA
218500 535 NWAmes 020 1829 TA Y 8 0 NA
171000 441 NWAmes 060 715 TA Y 7 0 NA
142250 490 NAmes 020 1232 TA Y 6 0 NA
128950 0 NAmes 020 950 TA Y 6 0 NA
159000 504 NAmes 020 1209 Gd Y 6 0 NA
178900 517 NAmes 020 1510 TA Y 6 0 NA
136300 480 NAmes 080 533 TA Y 8 0 NA
137500 480 NAmes 085 936 TA Y 6 0 NA
84900 0 NAmes 090 1728 TA Y 10 0 NA
116500 0 BrkSide 020 858 TA Y 4 0 NA
76500 0 BrkSide 030 728 TA Y 6 0 NA
128000 280 NAmes 020 1056 TA Y 6 0 NA
154300 480 NAmes 090 1105 TA Y 12 0 NA
135000 576 NAmes 090 1604 TA Y 8 0 NA
136000 308 NAmes 020 1143 TA Y 6 0 NA
145000 294 NAmes 020 1314 TA Y 5 0 NA
148000 312 NAmes 020 1194 TA Y 6 0 NA
142000 531 NAmes 020 1188 TA Y 6 0 NA
108538 312 NAmes 020 1206 TA Y 6 0 NA
135000 318 NAmes 020 864 TA Y 4 0 NA
122500 305 NAmes 020 972 TA Y 5 0 NA
105000 676 NAmes 030 576 TA Y 4 0 NA
144900 490 NAmes 020 1086 TA Y 6 0 NA
129000 308 NAmes 020 936 TA Y 4 0 NA
144000 576 OldTown 090 1056 TA Y 4 0 NA
132000 280 NAmes 050 816 TA Y 5 0 NA
154000 305 NAmes 020 1246 TA Y 6 0 NA
134800 576 NAmes 020 900 TA Y 5 0 NA
148000 484 NAmes 020 1175 TA Y 6 0 NA
143000 551 OldTown 020 1347 TA Y 6 0 NA
107400 379 OldTown 050 840 Fa N 8 0 NA
119000 240 OldTown 045 827 Gd Y 6 0 NA
100000 315 OldTown 050 1008 TA Y 6 0 NA
105900 484 OldTown 030 624 TA Y 5 0 NA
139000 416 OldTown 050 686 Fa Y 7 0 NA
240000 624 OldTown 070 346 Fa Y 7 0 NA
76500 0 OldTown 190 840 TA N 12 0 NA
149700 923 OldTown 020 912 TA Y 6 0 NA
140750 624 OldTown 070 738 Fa Y 6 0 NA
128500 363 BrkSide 050 988 TA Y 7 0 NA
134000 240 BrkSide 050 608 TA Y 5 0 NA
139900 312 BrkSide 050 780 TA Y 6 0 NA
123900 624 BrkSide 050 528 TA Y 5 0 NA
159900 0 OldTown 070 780 TA Y 7 0 NA
122000 180 OldTown 070 662 TA Y 6 0 NA
110000 516 IDOTRR 090 816 Gd N 5 0 NA
55000 0 IDOTRR 190 0 NA N 7 0 NA
107500 180 ClearCr 050 689 Gd N 6 0 NA
95000 231 SWISU 050 600 Fa N 5 0 NA
93369 0 SWISU 070 707 TA N 7 0 NA
94000 0 Sawyer 050 780 TA N 6 0 NA
136000 0 Sawyer 090 1832 TA N 8 0 NA
158000 299 Sawyer 060 663 TA Y 7 0 NA
85000 440 Sawyer 030 660 Fa N 4 0 NA
128000 436 Sawyer 020 1067 Gd Y 4 0 NA
83000 366 Edwards 030 458 TA N 5 0 NA
129000 596 Edwards 020 1144 TA Y 6 0 NA
114000 504 Edwards 020 1250 TA Y 5 0 NA
147000 564 SawyerW 085 936 Gd Y 5 0 NA
245350 776 CollgCr 020 1694 Gd Y 7 0 NA
206000 632 CollgCr 020 1187 Gd Y 6 0 NA
198900 740 CollgCr 020 1226 Gd Y 6 0 NA
187000 615 CollgCr 020 1222 Gd Y 6 0 NA
200500 523 CollgCr 060 804 Gd Y 7 0 NA
150000 308 CollgCr 020 1026 Gd Y 5 0 NA
161750 299 CollgCr 060 689 Gd Y 6 0 NA
127000 484 CollgCr 020 876 TA Y 5 0 NA
224900 598 CollgCr 020 1649 Gd Y 6 0 NA
213000 606 CollgCr 020 1473 Gd Y 7 0 NA
84900 240 Edwards 030 0 NA N 5 0 NA
155891 319 Edwards 020 381 Fa Y 6 0 NA
100000 0 Edwards 090 0 NA N 8 0 NA
144000 336 Edwards 020 1196 Gd Y 6 0 NA
90000 0 Edwards 020 960 TA Y 5 0 NA
140000 440 Edwards 020 1121 Gd Y 5 0 NA
80000 280 Edwards 190 672 Gd N 5 0 NA
58500 200 Edwards 030 864 TA N 5 0 NA
215000 484 Crawfor 090 1032 TA Y 11 0 NA
203135 473 Crawfor 080 423 Gd Y 6 0 NA
82000 200 IDOTRR 030 480 TA Y 4 0 NA
68400 528 IDOTRR 050 698 TA Y 6 0 NA
102776 384 IDOTRR 050 859 TA Y 7 0 NA
55993 504 IDOTRR 020 540 TA N 4 0 NA
50138 330 IDOTRR 030 756 TA Y 5 0 NA
201000 573 Mitchel 020 1560 Ex Y 7 0 NA
170000 776 Mitchel 090 1958 TA Y 9 0 NA
179781 520 Timber 020 1214 Gd Y 6 0 NA
174000 400 Timber 060 384 Gd Y 7 0 NA
139000 0 Mitchel 090 912 TA Y 8 0 NA
83500 286 MeadowV 160 546 TA Y 6 0 NA
85000 336 MeadowV 160 536 Gd Y 4 0 NA
76000 0 MeadowV 160 546 TA Y 5 0 NA
75500 0 MeadowV 180 630 Gd Y 3 0 NA
88250 0 MeadowV 160 546 TA Y 5 0 NA
85500 286 MeadowV 160 546 TA Y 5 0 NA
157900 312 Mitchel 020 1188 TA Y 6 0 NA
159000 616 Mitchel 090 1216 TA Y 10 0 NA
136000 576 Mitchel 060 624 Gd Y 6 0 NA
161000 275 Mitchel 050 864 TA Y 8 0 NA
124500 502 NAmes 020 882 Fa Y 5 0 NA
240000 495 StoneBr 120 1418 Gd Y 5 0 NA
239500 528 StoneBr 120 1587 Gd Y 6 0 NA
180500 500 Gilbert 020 1424 Gd Y 5 0 NA
136000 0 NAmes 090 896 Gd Y 8 0 NA
128000 477 NAmes 020 1180 TA Y 6 0 NA
143000 336 NAmes 020 1043 Gd Y 6 0 NA
120500 660 NAmes 020 864 TA Y 5 0 NA
124500 463 NAmes 020 864 TA Y 5 0 NA
97000 576 NAmes 020 864 TA Y 4 0 NA
111000 264 BrDale 160 483 TA Y 5 0 NA
112000 280 BrDale 160 630 TA Y 6 0 NA
97000 288 BrDale 160 483 TA Y 5 0 NA
119500 264 BrDale 160 630 TA Y 6 0 NA
100000 288 NAmes 020 892 TA Y 5 0 NA
233170 644 NridgHt 020 1502 Gd Y 7 0 NA
167000 400 Gilbert 080 384 Gd Y 7 0 NA
275000 972 Somerst 020 1696 Gd Y 7 0 NA
210000 676 Somerst 060 768 Gd Y 6 0 NA
225000 529 Somerst 020 1436 Ex Y 6 0 NA
229800 625 Somerst 020 1402 Gd Y 7 0 NA
241000 438 Somerst 060 1092 Gd Y 7 0 NA
185000 400 Somerst 020 1221 Gd Y 6 0 NA
234500 588 Somerst 020 1553 Gd Y 6 0 NA
203000 845 SawyerW 020 1512 Gd Y 6 0 NA
184900 555 SawyerW 020 1176 Gd Y 5 0 NA
159000 576 SawyerW 020 1114 Gd Y 6 0 NA
142000 0 SawyerW 020 1114 Gd Y 6 0 NA
224243 788 SawyerW 020 1450 Gd Y 6 0 NA
171500 528 SawyerW 060 816 Gd Y 6 0 NA
145000 542 SawyerW 120 1332 Gd Y 5 0 NA
184000 495 SawyerW 060 754 Gd Y 6 0 NA
162000 465 SawyerW 060 676 Gd Y 6 0 NA
135000 484 Sawyer 020 980 TA Y 6 0 NA
141000 732 Sawyer 020 864 TA Y 5 0 NA
122000 440 Sawyer 020 864 TA Y 5 0 NA
124100 288 Sawyer 020 1024 TA Y 5 0 NA
123000 252 Sawyer 020 912 TA Y 6 0 NA
164500 528 Somerst 160 612 Gd Y 4 0 NA
172500 440 Somerst 160 729 Gd Y 6 0 NA
180000 440 Somerst 160 756 Gd Y 4 0 NA
241600 540 Veenker 020 1740 Gd Y 7 0 NA
154000 441 NWAmes 060 727 TA Y 8 0 NA
113000 336 NWAmes 020 1216 TA Y 5 0 NA
227000 528 NWAmes 060 810 Gd Y 6 0 NA
130000 312 NAmes 020 864 TA Y 5 0 NA
143000 440 NAmes 020 1568 TA Y 7 0 NA
118000 308 NAmes 020 864 TA Y 5 0 NA
167000 472 NAmes 020 1516 TA Y 6 0 NA
124500 270 NAmes 020 1041 TA Y 6 0 NA
82500 0 BrkSide 030 420 TA Y 5 0 NA
175000 550 NAmes 020 1680 TA Y 5 0 NA
128900 338 NAmes 020 1050 TA Y 5 0 NA
140000 271 NAmes 050 856 TA Y 6 0 NA
124000 792 NAmes 090 1584 TA Y 8 0 NA
150000 286 NAmes 020 1169 TA Y 6 0 NA
155000 297 NAmes 020 1215 TA Y 6 0 NA
120000 304 NAmes 020 1202 TA Y 6 0 NA
153000 350 NAmes 020 1382 TA Y 6 0 NA
131000 297 NAmes 020 1062 TA Y 6 0 NA
123000 270 NAmes 020 608 TA Y 5 0 NA
145500 230 NAmes 020 1031 TA Y 5 0 NA
102900 616 NAmes 020 0 NA Y 7 0 NA
95000 420 OldTown 190 978 Fa Y 7 0 NA
129900 246 NAmes 020 1200 TA Y 6 0 NA
99900 366 OldTown 020 792 TA Y 4 0 NA
135000 180 OldTown 050 660 Fa Y 8 0 NA
109500 240 OldTown 030 768 TA Y 5 0 NA
105000 338 OldTown 050 840 TA Y 6 0 NA
78500 320 OldTown 030 630 TA Y 4 0 NA
190000 907 NAmes 090 1248 TA Y 12 0 NA
154000 364 NAmes 020 1380 TA Y 6 0 NA
200000 968 NAmes 090 1248 TA Y 12 0 NA
143500 480 NAmes 020 951 TA Y 6 0 NA
135000 308 NAmes 020 1105 TA Y 5 0 NA
153000 756 NAmes 020 992 TA Y 5 0 NA
92900 400 NAmes 090 0 NA N 6 0 NA
128500 900 NAmes 050 795 TA N 5 0 NA
138000 240 NAmes 050 1208 TA Y 7 0 NA
128000 294 NAmes 020 1041 TA Y 6 0 NA
139000 294 NAmes 020 1029 TA Y 6 0 NA
138000 288 NAmes 080 528 Gd Y 6 0 NA
132500 672 NAmes 020 1148 TA Y 6 0 NA
133500 384 NAmes 050 832 TA Y 6 0 NA
135000 576 NAmes 050 864 TA Y 6 0 NA
144750 483 NAmes 060 780 TA Y 8 0 NA
109500 308 NAmes 020 894 TA N 5 0 NA
110000 440 OldTown 050 440 TA Y 5 0 NA
128900 162 OldTown 050 901 TA Y 6 0 NA
130000 472 OldTown 050 240 TA Y 6 0 NA
129000 0 OldTown 070 504 TA Y 7 0 NA
94550 0 OldTown 190 600 Fa N 8 0 NA
124500 400 OldTown 090 960 TA Y 10 0 NA
103000 0 OldTown 050 801 Fa N 6 0 NA
129500 308 OldTown 050 768 TA Y 6 0 NA
93000 256 OldTown 190 811 TA Y 7 0 NA
80000 288 OldTown 030 861 Fa Y 5 0 NA
45000 308 OldTown 030 0 NA N 4 0 NA
37900 0 OldTown 050 600 TA N 6 0 NA
99500 287 OldTown 030 624 Fa Y 5 0 NA
113000 0 OldTown 190 736 TA Y 8 0 NA
110000 240 OldTown 050 720 TA Y 5 0 NA
160000 357 OldTown 070 917 Fa Y 8 0 NA
124900 456 OldTown 050 1088 TA Y 7 0 NA
146500 640 OldTown 070 741 TA Y 8 0 NA
34900 0 IDOTRR 030 720 TA N 4 0 NA
128000 240 BrkSide 050 672 TA Y 6 0 NA
119000 180 BrkSide 045 884 TA Y 4 0 NA
100000 440 BrkSide 030 1145 TA Y 5 0 NA
141500 576 BrkSide 050 927 TA Y 5 0 NA
133000 240 BrkSide 050 884 TA Y 6 0 NA
105000 180 BrkSide 030 715 TA Y 5 0 NA
115000 264 BrkSide 030 960 TA Y 5 0 NA
214500 441 BrkSide 075 844 TA N 10 0 NA
155000 576 OldTown 070 1048 TA Y 8 0 NA
179900 216 OldTown 070 672 TA Y 8 0 NA
62500 0 OldTown 090 1040 TA N 11 0 NA
103000 539 IDOTRR 030 780 TA Y 5 0 NA
97500 0 OldTown 190 1020 TA N 9 0 NA
70000 0 IDOTRR 085 858 Gd Y 5 0 NA
179000 0 Edwards 090 1200 Gd Y 5 0 NA
179000 0 Edwards 090 1200 Gd Y 5 0 NA
61000 0 Edwards 030 683 Fa N 4 0 NA
63000 226 Edwards 050 585 TA N 6 0 NA
139000 480 Sawyer 020 1121 TA Y 5 0 NA
135000 284 Edwards 020 1134 TA Y 6 0 NA
82500 539 Edwards 030 861 TA Y 4 0 NA
122000 498 Edwards 020 0 NA Y 6 0 NA
84000 290 Edwards 020 0 NA N 5 0 NA
139500 266 Edwards 120 1049 Gd Y 5 0 NA
105000 280 Edwards 050 560 TA Y 6 0 NA
118964 410 SawyerW 090 0 NA Y 8 0 NA
147983 720 SawyerW 090 0 NA Y 8 0 NA
118858 400 SawyerW 090 0 NA Y 8 0 NA
142953 528 SawyerW 090 0 NA Y 12 0 NA
113722 400 SawyerW 090 0 NA Y 8 0 NA
239000 702 CollgCr 020 1800 Ex Y 7 0 NA
221800 810 CollgCr 020 1254 Gd Y 5 0 NA
194500 632 CollgCr 020 1232 Gd Y 6 0 NA
152000 576 CollgCr 020 1040 Gd Y 6 0 NA
138000 480 CollgCr 020 990 Gd Y 5 0 NA
197900 546 CollgCr 060 866 Gd Y 6 0 NA
204000 577 CollgCr 020 1490 Gd Y 6 0 NA
192000 666 CollgCr 020 1431 Gd Y 6 0 NA
195000 493 CollgCr 060 831 Gd Y 7 0 NA
227000 544 CollgCr 020 1573 Gd Y 6 0 NA
230000 622 CollgCr 060 944 Gd Y 6 0 NA
187100 605 CollgCr 020 1413 Gd Y 6 0 NA
203000 577 CollgCr 020 1431 Gd Y 6 0 NA
134900 444 CollgCr 020 914 TA Y 5 0 NA
150500 484 CollgCr 020 1040 Gd Y 5 0 NA
136500 336 CollgCr 020 864 TA Y 6 0 NA
133900 396 CollgCr 085 768 Gd Y 5 0 NA
133000 396 CollgCr 085 768 Gd Y 5 0 NA
250000 1231 CollgCr 020 1569 Gd Y 6 0 NA
198500 550 CollgCr 060 840 Gd Y 6 0 NA
211000 608 CollgCr 060 944 Gd Y 6 0 NA
219500 645 CollgCr 060 1057 Gd Y 8 0 NA
178000 573 CollgCr 020 1212 Gd Y 6 0 NA
140000 420 CollgCr 120 848 Gd Y 4 0 NA
190000 572 CollgCr 060 864 Gd Y 7 0 NA
190000 570 CollgCr 020 1500 Gd Y 6 0 NA
167000 480 Edwards 020 1486 TA Y 7 0 NA
145500 525 Edwards 180 547 Gd Y 5 0 NA
118000 0 Edwards 020 698 TA Y 4 0 NA
85000 320 Edwards 020 876 TA Y 5 0 NA
120000 195 Edwards 020 1078 Fa Y 6 0 NA
98000 240 Edwards 050 0 NA N 9 0 NA
99900 0 Edwards 030 864 Fa Y 4 0 NA
82000 528 Edwards 020 0 NA N 4 0 NA
119900 0 Edwards 090 1678 TA Y 10 0 NA
110000 528 Edwards 050 684 TA Y 7 0 NA
117000 660 Edwards 050 984 TA Y 6 0 NA
159434 281 SWISU 050 793 TA Y 6 0 NA
60000 246 SWISU 030 290 TA N 3 0 NA
155000 576 SWISU 070 560 Gd Y 6 0 NA
163500 432 Crawfor 030 876 Gd Y 5 0 NA
147000 468 IDOTRR 070 672 TA Y 6 0 NA
123000 576 IDOTRR 070 760 TA N 11 0 NA
78000 189 IDOTRR 070 596 TA N 6 0 NA
75000 200 IDOTRR 030 572 TA N 4 0 NA
57625 280 IDOTRR 030 0 NA N 4 0 NA
126000 539 Mitchel 090 0 NA Y 8 0 NA
152000 672 Mitchel 020 1582 Gd Y 5 0 NA
224500 650 Timber 060 846 Ex Y 6 0 NA
170000 486 Timber 060 912 Gd Y 9 0 NA
139500 384 Mitchel 020 1008 TA Y 6 0 NA
130000 288 Mitchel 020 864 TA Y 5 0 NA
80000 286 MeadowV 180 630 Gd Y 3 0 NA
88000 286 MeadowV 160 546 TA Y 6 0 NA
131900 336 Mitchel 085 796 Gd Y 4 0 NA
112000 0 Mitchel 020 833 TA Y 5 0 NA
143000 480 Mitchel 050 796 Gd Y 5 0 NA
130000 440 Mitchel 060 624 Gd Y 6 0 NA
177900 404 Gilbert 020 1348 Gd Y 7 0 NA
180000 506 StoneBr 120 1280 Gd Y 5 0 NA
181900 598 NWAmes 020 1260 Gd Y 6 0 NA
175000 540 NWAmes 020 1126 Gd Y 6 0 NA
133000 480 NAmes 090 896 Gd Y 8 0 NA
151000 460 NAmes 020 1054 Gd Y 6 0 NA
111900 288 NAmes 020 936 Gd Y 4 0 NA
123000 576 NAmes 020 864 Gd Y 5 0 NA
103400 264 BrDale 160 483 TA Y 5 0 NA
100000 264 BrDale 160 483 TA Y 5 0 NA
100500 352 BrDale 160 483 TA Y 5 0 NA
106000 280 BrDale 160 483 TA Y 5 0 NA
89500 264 BrDale 160 483 TA Y 5 0 NA
111750 264 BrDale 160 630 TA Y 6 0 NA
140000 440 NPkVill 120 1069 Gd Y 4 0 NA
143000 460 NPkVill 160 855 Gd Y 7 0 NA
110000 264 NAmes 020 864 TA Y 5 0 NA
317500 905 NridgHt 020 1582 Ex Y 7 0 NA
155000 474 NridgHt 160 764 Gd Y 6 0 NA
154000 474 NridgHt 160 764 Gd Y 6 0 NA
190000 400 Gilbert 080 856 Gd Y 5 0 NA
176000 400 Gilbert 060 728 Gd Y 8 0 NA
227680 554 Somerst 020 1417 Gd Y 6 0 NA
212700 588 Somerst 020 1363 Gd Y 6 0 NA
250580 529 Somerst 020 1372 Ex Y 6 0 NA
182000 480 Somerst 020 1428 Gd Y 6 0 NA
226700 603 Somerst 060 866 Gd Y 7 0 NA
205950 562 Somerst 060 813 Gd Y 7 0 NA
207500 673 Somerst 060 864 Gd Y 7 0 NA
141000 0 SawyerW 020 1080 Gd Y 6 0 NA
159000 576 SawyerW 020 1114 TA Y 6 0 NA
155000 576 SawyerW 020 1114 Gd Y 6 0 NA
173000 520 SawyerW 060 798 Gd Y 6 0 NA
170000 483 SawyerW 020 1162 Gd Y 6 0 NA
182000 525 SawyerW 060 754 Gd Y 6 0 NA
163000 474 SawyerW 060 886 Gd Y 7 0 NA
190500 627 SawyerW 060 827 Gd Y 7 0 NA
179200 496 SawyerW 020 1278 Gd Y 6 0 NA
153900 530 SawyerW 120 1199 Gd Y 5 0 NA
144000 352 Sawyer 020 912 TA Y 4 0 NA
119916 276 Sawyer 020 864 Gd Y 5 0 NA
196000 530 Somerst 120 1391 Gd Y 5 0 NA
171900 625 Somerst 160 625 Gd Y 5 0 NA
178000 495 Somerst 120 1235 Gd Y 5 0 NA
146000 540 Somerst 160 689 Gd Y 5 0 NA
172900 440 Somerst 160 744 Gd Y 6 0 NA
170000 462 Somerst 160 672 Gd Y 5 0 NA
200000 480 Somerst 160 960 Gd Y 7 0 NA
162500 516 Veenker 020 1232 Gd Y 6 0 NA
183000 516 NWAmes 080 1427 TA Y 7 0 NA
145000 528 NWAmes 020 1258 TA Y 5 0 NA
140500 484 NWAmes 090 1625 TA Y 8 0 NA
141000 470 NAmes 060 732 TA Y 7 0 NA
147000 576 NAmes 020 912 TA Y 5 0 NA
135000 576 NAmes 020 912 TA Y 5 0 NA
142600 576 NAmes 090 1728 TA Y 10 0 NA
135000 506 NWAmes 090 1656 TA Y 8 0 NA
170000 464 NWAmes 060 825 Gd Y 7 0 NA
173000 484 NWAmes 060 800 TA Y 7 0 NA
178400 588 NAmes 085 944 TA Y 6 0 NA
109008 352 NAmes 020 907 TA Y 5 0 NA
155000 525 NAmes 020 1120 TA Y 6 0 NA
174900 490 NAmes 080 1127 TA Y 6 0 NA
145000 504 NAmes 020 1092 Gd Y 6 0 NA
168500 520 NAmes 080 1248 TA Y 6 0 NA
140000 451 NAmes 020 1114 TA Y 5 0 NA
142000 528 NAmes 020 1252 TA Y 7 0 NA
153000 264 NAmes 020 1118 TA Y 6 0 NA
72500 287 BrkSide 020 0 NA N 4 0 NA
87000 231 BrkSide 070 348 TA Y 5 0 NA
141500 450 NAmes 020 1296 TA Y 6 0 NA
119000 288 NAmes 050 1032 TA Y 6 0 NA
112900 312 NAmes 020 1036 TA Y 5 0 NA
124000 336 NAmes 020 1144 TA Y 6 0 NA
140000 506 NAmes 020 931 TA Y 6 0 NA
136000 288 NAmes 020 1080 TA Y 5 0 NA
133000 384 NAmes 020 1104 TA Y 5 0 NA
116000 240 NAmes 020 720 TA Y 4 0 NA
137500 636 NAmes 020 1152 TA Y 6 0 NA
130000 400 NAmes 020 984 TA N 5 0 NA
89900 390 OldTown 020 0 NA N 3 0 NA
114000 288 OldTown 050 747 TA Y 5 0 NA
86900 308 OldTown 030 672 TA Y 4 0 NA
106250 0 OldTown 190 0 NA N 7 0 NA
98300 420 NAmes 020 0 NA Y 7 0 NA
159000 311 NAmes 020 1256 TA Y 6 0 NA
125900 299 NAmes 020 1027 TA Y 6 0 NA
138000 576 NAmes 050 768 TA Y 5 0 NA
112500 280 NAmes 045 936 TA Y 4 0 NA
105500 528 NAmes 045 832 TA Y 4 0 NA
130000 0 NAmes 090 1800 TA N 10 0 NA
150000 480 NAmes 050 768 TA Y 6 0 NA
109500 350 NAmes 020 825 TA Y 4 0 NA
167900 442 NAmes 060 780 TA Y 7 0 NA
136870 264 NAmes 020 1117 TA Y 6 0 NA
143000 308 OldTown 020 192 TA N 7 0 NA
73000 504 OldTown 030 680 Fa N 4 0 NA
122600 400 OldTown 050 780 TA Y 6 0 NA
111000 330 OldTown 070 680 TA N 6 0 NA
64000 256 OldTown 030 672 Fa Y 4 0 NA
139500 308 OldTown 075 728 TA Y 7 0 NA
200000 484 OldTown 050 1362 Gd Y 6 0 NA
119164 440 OldTown 050 801 TA Y 8 0 NA
95000 0 OldTown 050 684 Fa Y 5 0 NA
115000 250 OldTown 020 789 TA Y 5 0 NA
147000 528 OldTown 020 924 TA Y 6 0 NA
112500 288 OldTown 020 928 TA Y 5 0 NA
107900 281 OldTown 020 901 TA Y 4 0 NA
65000 0 OldTown 020 448 Fa Y 6 0 NA
98000 513 OldTown 070 624 TA N 7 0 NA
114000 308 OldTown 050 346 TA Y 5 0 NA
129400 0 OldTown 070 572 Fa Y 7 0 NA
55000 400 OldTown 070 723 Fa N 5 0 NA
131500 352 OldTown 050 1050 TA N 7 0 NA
97000 308 OldTown 020 0 NA Y 4 0 NA
115500 308 OldTown 020 869 TA Y 5 0 NA
108000 252 BrkSide 050 672 TA Y 8 0 NA
124000 240 BrkSide 050 672 TA Y 6 0 NA
106900 200 BrkSide 070 554 TA Y 6 0 NA
79000 280 BrkSide 020 NA NA Y 4 0 NA
81300 164 BrkSide 030 0 NA N 6 0 NA
68500 240 BrkSide 030 520 TA N 4 0 NA
145000 240 BrkSide 050 883 TA Y 8 0 NA
130000 275 BrkSide 030 816 TA Y 5 0 NA
160000 360 OldTown 060 1242 TA Y 8 0 NA
127500 228 OldTown 050 796 Gd Y 7 0 NA
120000 400 IDOTRR 050 880 TA Y 6 0 NA
127500 320 IDOTRR 030 1040 TA Y 5 0 NA
89500 0 IDOTRR 050 319 TA Y 6 0 NA
79900 0 OldTown 050 901 TA Y 7 0 NA
85000 576 IDOTRR 030 451 Fa Y 5 0 NA
82375 0 IDOTRR 190 536 TA N 8 0 NA
124000 240 Sawyer 020 1046 TA N 6 0 NA
127500 0 Edwards 190 644 TA Y 6 0 NA
148000 440 Sawyer 085 981 Gd Y 6 0 NA
129500 384 Sawyer 020 1040 TA Y 5 0 NA
130000 450 Sawyer 020 894 TA Y 5 0 NA
152000 506 Sawyer 085 1060 Gd Y 5 0 NA
108959 400 Sawyer 090 1198 Gd Y 6 0 NA
95541 400 Sawyer 190 1300 TA Y 6 0 NA
80000 0 Sawyer 020 1006 TA Y 5 0 NA
149350 271 Sawyer 020 1228 TA Y 6 0 NA
144900 300 Sawyer 020 960 TA Y 6 0 NA
140000 300 Sawyer 080 533 TA Y 6 0 NA
99600 0 Edwards 090 864 Gd N 4 0 NA
134500 280 Edwards 060 621 TA Y 7 0 NA
107500 0 Edwards 190 1117 Gd Y 5 0 NA
125000 240 Edwards 190 1164 TA N 5 0 NA
79000 0 Edwards 050 572 TA N 5 0 NA
200000 603 ClearCr 060 616 Gd Y 8 0 NA
155000 528 CollgCr 020 990 Gd Y 5 0 NA
145000 672 CollgCr 020 990 Gd Y 5 0 NA
215700 600 CollgCr 060 864 Gd Y 6 0 NA
207500 532 CollgCr 060 782 Gd Y 6 0 NA
188000 527 CollgCr 060 880 Gd Y 8 0 NA
191000 577 CollgCr 020 1468 Gd Y 6 0 NA
235000 626 CollgCr 060 928 Gd Y 6 0 NA
130250 308 CollgCr 020 938 Gd Y 5 0 NA
147000 576 CollgCr 080 940 Gd Y 5 0 NA
110000 280 CollgCr 020 924 Gd Y 5 0 NA
127000 352 CollgCr 020 864 TA Y 5 0 NA
124900 352 CollgCr 020 780 TA Y 4 0 NA
224900 543 CollgCr 060 884 Gd Y 8 0 NA
136500 420 CollgCr 120 848 Gd Y 3 0 NA
145000 420 CollgCr 120 848 Gd Y 3 0 NA
185000 721 CollgCr 090 1838 Gd Y 8 0 NA
208500 548 CollgCr 060 856 Gd Y 8 0 NA
186500 470 CollgCr 020 1445 Gd Y 6 0 NA
210000 484 CollgCr 020 1436 Gd Y 8 0 NA
179900 484 CollgCr 020 1234 Ex Y 7 0 NA
218836 814 CollgCr 020 1564 Gd Y 6 0 NA
85000 0 Edwards 030 796 Fa Y 4 0 NA
145900 0 Edwards 090 1272 TA Y 9 0 NA
147500 276 Edwards 020 1256 TA Y 6 0 NA
148000 525 Edwards 180 547 Gd Y 5 0 NA
82000 0 Edwards 090 0 NA N 6 0 NA
82000 0 Edwards 090 0 NA N 6 0 NA
118000 0 Edwards 090 1440 TA N 8 0 NA
82500 0 Edwards 090 0 NA N 6 0 NA
91900 0 Edwards 190 784 TA N 4 0 NA
120000 0 Edwards 050 585 TA Y 5 0 NA
96000 0 Edwards 050 0 NA Y 8 0 NA
130500 240 Edwards 050 768 TA Y 6 0 NA
135000 548 Edwards 050 941 TA Y 7 0 NA
135500 300 Edwards 050 816 TA Y 8 0 NA
100000 312 Edwards 080 416 Ex Y 6 0 NA
108000 205 Edwards 030 949 TA Y 6 0 NA
98000 0 Edwards 030 864 TA N 5 0 NA
67000 0 Edwards 030 864 TA N 5 0 NA
135900 0 SWISU 190 780 TA N 9 0 NA
140000 400 SWISU 070 672 TA N 7 0 NA
189000 621 SWISU 070 612 TA Y 8 0 NA
177000 308 Crawfor 070 840 Gd Y 8 0 NA
115000 240 SWISU 050 1064 TA Y 6 0 NA
110000 225 Crawfor 050 884 TA Y 6 0 NA
120000 240 IDOTRR 050 720 Fa Y 5 0 NA
119000 0 IDOTRR 050 780 Gd Y 7 0 NA
99500 360 IDOTRR 030 520 TA Y 5 0 NA
13100 487 IDOTRR 020 0 NA N 4 0 NA
40000 250 IDOTRR 070 649 TA N 6 0 NA
81000 1248 IDOTRR 030 894 TA Y 6 0 NA
65000 216 IDOTRR 070 592 Fa Y 5 0 NA
300000 786 Mitchel 020 1840 Ex Y 7 0 NA
100000 484 Mitchel 090 0 NA Y 8 0 NA
294000 788 Timber 020 1518 Ex Y 8 0 NA
167500 400 Timber 080 384 Gd Y 7 0 NA
218689 666 Timber 060 796 Gd Y 6 0 NA
195000 435 Timber 020 1666 Ex Y 6 0 NA
206300 784 Mitchel 090 1344 Gd Y 8 0 NA
160500 392 Mitchel 120 1189 Ex Y 4 0 NA
124000 499 MeadowV 120 1040 Gd Y 6 0 NA
105000 297 MeadowV 180 526 Gd Y 5 0 NA
81000 0 MeadowV 180 630 Gd Y 3 0 NA
128500 264 Mitchel 020 816 TA Y 4 0 NA
119500 264 Mitchel 020 876 TA Y 5 0 NA
138000 816 Mitchel 020 816 TA Y 4 0 NA
134500 264 Mitchel 020 845 TA Y 6 0 NA
160000 423 Mitchel 050 983 Gd Y 7 0 NA
137500 484 Mitchel 020 864 TA Y 6 0 NA
103000 288 IDOTRR 070 686 TA Y 7 0 NA
177000 388 Gilbert 060 794 Gd Y 6 0 NA
251000 499 StoneBr 120 1494 Gd Y 6 0 NA
178750 420 Gilbert 060 691 Gd Y 6 0 NA
160000 420 Gilbert 020 1168 Gd Y 6 0 NA
170000 461 StoneBr 120 1074 Gd Y 5 0 NA
182000 480 StoneBr 120 1166 Gd Y 5 0 NA
155000 828 Gilbert 190 1100 Gd Y 7 0 NA
174000 480 NWAmes 020 1284 Gd Y 5 0 NA
151500 495 NWAmes 020 1153 Gd Y 6 0 NA
152000 462 NWAmes 060 780 TA Y 7 0 NA
139000 288 NAmes 080 372 TA Y 5 0 NA
184000 484 NAmes 060 725 TA Y 7 0 NA
155000 576 NAmes 020 925 TA Y 7 0 NA
119500 280 NAmes 020 950 TA Y 5 0 NA
110000 684 NAmes 020 858 TA Y 4 0 NA
128000 270 NAmes 020 914 TA Y 4 0 NA
133000 367 NAmes 120 723 Gd Y 4 0 NA
113500 264 BrDale 160 525 TA Y 6 0 NA
113000 264 BrDale 160 672 TA Y 7 0 NA
122500 440 BrDale 160 765 TA Y 6 0 NA
142500 319 NPkVill 120 1061 Gd Y 4 0 NA
129250 360 NAmes 020 988 TA Y 5 0 NA
232698 554 NridgHt 020 1721 Gd Y 7 0 NA
250000 876 NridgHt 060 1298 Gd Y 7 0 NA
181755 572 Gilbert 060 768 Gd Y 7 0 NA
168165 454 Gilbert 060 608 Gd Y 6 0 NA
203000 388 Gilbert 020 1326 Gd Y 6 0 NA
176485 436 Gilbert 020 1302 Gd Y 6 0 NA
181134 396 Gilbert 020 1340 Gd Y 6 0 NA
166000 440 Gilbert 060 752 Gd Y 6 0 NA
177594 400 Gilbert 060 728 Gd Y 7 0 NA
173500 462 Gilbert 020 1246 Gd Y 6 0 NA
188500 437 Gilbert 080 835 Gd Y 5 0 NA
162000 400 Gilbert 060 660 Gd Y 6 0 NA
213133 605 Somerst 020 1369 Gd Y 5 0 NA
260000 484 Somerst 020 1538 Gd Y 7 0 NA
225000 474 Somerst 020 1496 Gd Y 7 0 NA
250000 574 Somerst 060 982 Gd Y 7 0 NA
208900 598 Somerst 020 1338 Gd Y 6 0 NA
255000 590 Somerst 060 896 Gd Y 8 0 NA
212109 561 Somerst 060 725 Gd Y 8 0 NA
249700 826 Somerst 020 1656 Gd Y 7 0 NA
146000 0 SawyerW 020 1100 Gd Y 6 0 NA
201000 471 SawyerW 060 928 Gd Y 7 0 NA
144000 504 SawyerW 085 840 Gd Y 5 0 NA
120750 308 Sawyer 020 894 Gd Y 5 0 NA
132500 264 Sawyer 020 999 TA Y 6 0 NA
129000 544 Sawyer 020 1040 TA Y 5 0 NA
145000 686 Sawyer 020 1040 TA Y 5 0 NA
128500 572 Sawyer 020 988 TA Y 5 0 NA
129000 431 Sawyer 020 1037 Fa Y 5 0 NA
166000 484 Somerst 120 1141 Gd Y 5 0 NA
207500 528 Somerst 120 1550 Gd Y 5 0 NA
177000 440 Somerst 160 756 Gd Y 4 0 NA
204000 625 Somerst 020 1339 Gd Y 5 0 NA
143450 412 NWAmes 020 912 TA Y 7 0 NA
164000 528 NWAmes 020 1295 Gd Y 6 0 NA
127000 311 NWAmes 020 1052 TA Y 6 0 NA
127000 308 NAmes 020 949 TA Y 5 0 NA
126500 461 NAmes 020 1065 TA Y 6 0 NA
145000 264 NAmes 080 588 TA Y 6 0 NA
120000 297 NAmes 020 912 TA Y 5 0 NA
106500 294 NAmes 020 0 NA Y 5 0 NA
117600 312 NAmes 020 894 TA Y 5 0 NA
161000 440 NAmes 080 1042 TA Y 5 0 NA
150750 624 NAmes 020 1063 TA Y 7 0 NA
101800 462 NAmes 090 0 NA Y 6 0 NA
138500 512 NAmes 045 822 TA Y 4 0 NA
64000 0 BrkSide 050 370 TA N 4 0 NA
144000 288 NAmes 020 1078 TA Y 6 0 NA
126000 792 NAmes 090 1560 TA Y 8 0 NA
114500 275 NAmes 020 912 TA Y 5 0 NA
144000 315 NAmes 050 874 TA Y 7 0 NA
139400 260 NAmes 020 1056 TA Y 6 0 NA
116000 308 NAmes 020 922 TA Y 5 0 NA
135000 286 NAmes 020 1048 TA Y 6 0 NA
142000 336 NAmes 020 864 TA Y 6 0 NA
128600 484 NAmes 090 1560 TA Y 8 0 NA
125000 410 NAmes 020 948 TA Y 5 0 NA
134500 240 NAmes 020 1008 TA Y 6 0 NA
127000 252 NAmes 020 925 TA Y 5 0 NA
132000 252 NAmes 020 928 Gd Y 4 0 NA
301600 1200 NAmes 070 666 TA Y 9 0 NA
109000 240 OldTown 050 735 TA Y 5 0 NA
103200 0 OldTown 045 882 TA Y 4 0 NA
128500 580 OldTown 050 1151 TA Y 6 0 NA
148000 0 OldTown 070 736 Gd Y 6 0 NA
120000 240 NAmes 020 920 TA Y 5 0 NA
128500 288 NAmes 020 952 TA Y 5 0 NA
135000 254 NAmes 020 1010 TA Y 6 0 NA
99000 300 NAmes 020 0 NA Y 7 0 NA
125500 294 NAmes 020 864 TA Y 5 0 NA
132000 360 OldTown 070 264 Fa Y 7 0 NA
127500 576 OldTown 050 845 TA Y 6 0 NA
140000 672 OldTown 090 936 Gd Y 4 0 NA
120000 308 OldTown 050 649 TA Y 6 0 NA
89471 672 OldTown 030 907 Fa Y 7 0 NA
85000 252 OldTown 050 570 Fa N 6 0 NA
108500 308 OldTown 030 960 TA Y 5 0 NA
110500 0 OldTown 030 686 TA Y 4 0 NA
100000 480 OldTown 030 968 TA Y 5 0 NA
184900 816 OldTown 070 725 TA N 7 0 NA
114000 480 OldTown 070 616 TA Y 6 0 NA
90000 560 OldTown 190 662 TA N 10 0 NA
144100 468 OldTown 050 926 Gd Y 6 0 NA
117500 205 OldTown 070 1008 TA Y 8 0 NA
152000 216 OldTown 040 1149 TA Y 5 0 NA
153500 812 OldTown 030 1559 TA Y 5 0 NA
104500 331 OldTown 020 0 NA Y 5 0 NA
128250 308 BrkSide 050 910 Fa Y 6 0 NA
135000 224 BrkSide 050 728 TA Y 6 0 NA
132000 280 BrkSide 050 672 TA Y 7 0 NA
132500 379 BrkSide 050 756 TA Y 6 0 NA
137500 180 BrkSide 070 939 TA Y 8 0 NA
165000 576 BrkSide 050 768 TA Y 7 0 NA
90000 576 BrkSide 050 750 Fa Y 7 0 NA
153575 384 BrkSide 070 698 TA Y 7 0 NA
117000 216 OldTown 050 969 TA N 6 0 NA
127000 0 IDOTRR 070 684 TA Y 7 0 NA
101000 288 IDOTRR 075 530 TA N 6 0 NA
50000 264 IDOTRR 050 771 TA Y 6 0 NA
126000 240 Edwards 050 756 TA N 7 0 NA
130000 308 Sawyer 190 925 Gd Y 6 0 NA
115400 440 Sawyer 020 1005 TA Y 5 0 NA
118500 261 Sawyer 020 1029 TA Y 5 0 NA
123000 264 Sawyer 020 1040 TA Y 6 0 NA
125000 384 Sawyer 020 894 TA Y 5 0 NA
108000 300 Sawyer 020 948 TA Y 6 0 NA
119900 576 Sawyer 190 768 Gd Y 6 0 NA
115000 264 Sawyer 020 876 TA Y 5 0 NA
134500 528 Sawyer 020 943 TA Y 5 0 NA
127000 386 Sawyer 020 955 TA Y 6 0 NA
89500 460 Sawyer 020 0 NA N 5 0 NA
109900 336 Edwards 020 484 TA N 4 0 NA
154000 332 Edwards 050 988 TA Y 6 0 NA
118000 399 SWISU 020 864 TA Y 6 0 NA
150000 0 Edwards 090 1440 Gd Y 8 0 NA
86000 0 Edwards 030 528 TA Y 5 0 NA
130000 264 Edwards 120 1038 TA Y 5 0 NA
125000 256 Edwards 020 1342 Fa Y 7 0 NA
96000 280 Edwards 050 951 TA N 7 0 NA
360000 894 CollgCr 020 2140 Gd Y 8 0 NA
203000 508 CollgCr 020 1274 Gd Y 6 0 NA
195400 628 CollgCr 020 1208 Gd Y 6 0 NA
217000 796 CollgCr 020 1546 Gd Y 7 0 NA
191000 578 CollgCr 060 879 Gd Y 7 0 NA
187500 444 ClearCr 060 832 TA Y 9 0 NA
139500 747 CollgCr 020 1022 Gd Y 6 0 NA
146000 384 CollgCr 020 990 Gd Y 5 0 NA
123600 0 CollgCr 020 990 Gd Y 5 0 NA
226000 558 CollgCr 020 1453 Gd Y 7 0 NA
180000 500 CollgCr 060 840 Gd Y 8 0 NA
134900 748 CollgCr 020 1040 Gd Y 5 0 NA
120000 440 CollgCr 020 864 TA Y 5 0 NA
122000 440 CollgCr 020 969 TA Y 5 0 NA
127000 576 CollgCr 020 864 TA Y 5 0 NA
200000 542 CollgCr 060 860 Gd Y 7 0 NA
131500 420 CollgCr 120 848 Gd Y 3 0 NA
185000 531 CollgCr 020 1337 Gd Y 6 0 NA
179400 552 CollgCr 060 738 Gd Y 7 0 NA
213500 639 CollgCr 060 939 Gd Y 8 0 NA
179600 626 CollgCr 020 1422 Gd Y 7 0 NA
173500 578 CollgCr 020 1169 Gd Y 5 0 NA
167000 400 CollgCr 060 768 Gd Y 6 0 NA
110000 520 Edwards 020 1088 TA Y 4 0 NA
110000 622 Edwards 020 1179 TA Y 5 0 NA
141000 579 Edwards 090 0 NA Y 11 0 NA
157000 450 Edwards 020 1090 Ex Y 5 0 NA
171500 489 Edwards 060 734 Gd Y 6 0 NA
140000 525 Edwards 180 547 Gd Y 5 0 NA
131750 392 Edwards 020 960 TA Y 4 0 NA
111000 248 Edwards 020 864 TA Y 5 0 NA
98500 0 Edwards 090 1195 TA N 8 0 NA
79000 0 Edwards 030 544 TA Y 6 0 NA
112000 384 Edwards 050 560 Fa N 6 0 NA
79275 528 Edwards 020 864 TA Y 5 0 NA
200000 0 SWISU 190 1440 TA Y 14 0 NA
150000 0 SWISU 090 1296 TA N 12 0 NA
96500 200 Crawfor 045 768 TA N 5 0 NA
136500 352 Crawfor 030 1290 TA Y 6 0 NA
145000 492 Crawfor 090 979 Gd N 8 0 NA
140000 528 Crawfor 190 728 TA Y 5 0 NA
170000 628 Crawfor 020 1680 Gd Y 7 0 NA
200000 509 Blueste 120 1004 Gd Y 4 0 NA
115000 0 IDOTRR 050 793 TA N 7 0 NA
141000 720 IDOTRR 050 720 TA Y 6 0 NA
87000 360 IDOTRR 045 720 TA N 5 0 NA
150909 NA IDOTRR 070 859 Gd Y 6 0 NA
67000 338 IDOTRR 030 961 Fa Y 6 0 NA
152000 282 IDOTRR 050 910 TA Y 6 0 NA
68104 256 IDOTRR 050 0 NA Y 4 0 NA
119600 0 IDOTRR 190 957 TA N 9 0 NA
140000 720 IDOTRR 020 1073 TA Y 6 0 NA
134000 484 Mitchel 020 1084 TA Y 5 0 NA
148000 360 Mitchel 080 852 TA Y 4 0 NA
231713 433 Timber 020 1689 Gd Y 7 0 NA
174000 528 Timber 020 1265 Gd Y 6 0 NA
180500 471 Timber 020 1267 Ex Y 5 0 NA
147000 0 Mitchel 020 1120 Gd Y 6 0 NA
130000 1041 Mitchel 020 0 NA Y 9 0 NA
132250 648 Mitchel 020 1064 TA Y 5 0 NA
143000 576 Mitchel 090 1632 TA Y 8 0 NA
85500 253 MeadowV 160 546 TA Y 5 0 NA
93900 0 MeadowV 160 546 TA Y 5 0 NA
75000 286 MeadowV 160 546 TA Y 6 0 NA
84500 0 MeadowV 180 630 Gd Y 3 0 NA
80000 444 Mitchel 020 1396 TA N 6 0 NA
129500 360 Mitchel 020 845 TA Y 4 0 NA
135000 502 Mitchel 020 1090 Gd Y 6 0 NA
124500 264 Mitchel 020 816 TA Y 5 0 NA
139000 264 Mitchel 020 816 Gd Y 4 0 NA
149900 452 NAmes 020 1178 TA Y 5 0 NA
270000 618 StoneBr 160 2062 Gd Y 9 0 NA
145000 572 Gilbert 190 1056 TA N 5 0 NA
202500 440 NWAmes 020 1208 Gd Y 8 0 NA
229000 786 NWAmes 050 1204 Gd Y 9 0 NA
153500 495 NWAmes 020 1056 Gd Y 6 0 NA
155000 462 NWAmes 020 1103 TA Y 6 0 NA
138800 299 NAmes 020 1096 TA Y 6 0 NA
116050 280 NAmes 020 864 TA Y 5 0 NA
97500 576 NAmes 020 864 TA Y 5 0 NA
190000 543 NAmes 120 1487 Gd Y 4 0 NA
105500 440 BrDale 160 525 TA Y 6 0 NA
116000 264 BrDale 160 494 TA Y 6 0 NA
118000 264 BrDale 160 672 TA Y 7 0 NA
89000 264 BrDale 160 483 TA Y 5 0 NA
137500 319 NPkVill 120 1055 TA Y 4 0 NA
342643 840 NridgHt 060 1249 Ex Y 9 0 NA
174190 427 Gilbert 020 1326 Gd Y 6 0 NA
185101 440 Gilbert 060 738 Gd Y 8 0 NA
156820 440 Blmngtn 120 1142 Gd Y 6 0 NA
287602 617 Gilbert 060 1035 Gd Y 8 0 NA
199000 510 Somerst 020 1504 Gd Y 7 0 NA
186500 615 Somerst 060 756 Gd Y 6 0 NA
200825 615 Somerst 060 858 Gd Y 7 0 NA
197000 614 Somerst 060 770 Gd Y 6 0 NA
139500 0 SawyerW 020 1142 TA Y 5 0 NA
186800 612 SawyerW 020 1400 Gd Y 6 0 NA
132000 0 SawyerW 020 1131 Gd Y 6 0 NA
142500 484 SawyerW 020 1141 Gd Y 6 0 NA
158000 576 SawyerW 020 1158 Gd Y 5 0 NA
184000 462 SawyerW 060 891 Gd Y 8 0 NA
184900 449 SawyerW 060 784 Gd Y 7 0 NA
175900 484 SawyerW 060 761 Gd Y 7 0 NA
248500 462 SawyerW 060 836 Gd Y 7 0 NA
151000 484 SawyerW 120 1217 Gd Y 5 0 NA
150000 472 SawyerW 060 636 Gd Y 6 0 NA
107000 384 SawyerW 020 1056 TA Y 5 0 NA
119900 300 SawyerW 020 828 TA Y 6 0 NA
129500 624 Sawyer 020 988 TA Y 6 0 NA
125000 504 Sawyer 090 1728 TA Y 10 0 NA
116000 294 Sawyer 020 882 TA Y 5 0 NA
133500 484 Sawyer 020 925 TA Y 5 0 NA
137000 288 Sawyer 020 935 TA Y 5 0 NA
151000 480 Somerst 160 600 Gd Y 4 0 NA
147400 480 Somerst 160 600 Gd Y 4 0 NA
149900 480 Somerst 160 600 Gd Y 4 0 NA
144152 480 Somerst 160 600 Gd Y 4 0 NA
166000 440 Somerst 160 756 Gd Y 4 0 NA
165000 490 Somerst 160 673 Gd Y 6 0 NA
164500 477 NWAmes 020 1334 TA Y 7 0 NA
140000 528 NWAmes 020 1164 TA Y 6 0 NA
155000 530 NAmes 060 900 Gd Y 7 0 NA
138500 288 NAmes 020 1052 TA Y 5 0 NA
124400 264 NAmes 020 1051 TA Y 6 0 NA
158000 568 NAmes 080 1141 TA Y 6 0 NA
146000 884 NAmes 020 864 TA Y 6 0 NA
136500 368 NAmes 020 1050 TA Y 6 0 NA
145000 588 NAmes 090 1626 TA Y 8 0 NA
140000 264 NAmes 190 588 TA Y 6 0 NA
150000 750 NAmes 020 1008 TA Y 6 0 NA
151500 286 NAmes 020 1248 TA Y 6 0 NA
85500 0 BrkSide 030 440 Gd Y 4 0 NA
79900 528 BrkSide 030 600 Fa Y 5 0 NA
127000 576 BrkSide 050 504 Fa Y 5 0 NA
135000 280 NAmes 020 1056 TA Y 7 0 NA
121000 240 NAmes 020 936 TA Y 5 0 NA
98600 480 NAmes 020 1235 TA Y 6 0 NA
118000 286 NAmes 020 936 TA Y 5 0 NA
132500 540 NAmes 090 1106 TA Y 6 0 NA
156000 286 NAmes 020 1050 TA Y 6 0 NA
139500 280 NAmes 020 1008 TA Y 4 0 NA
127000 684 NAmes 080 301 Gd Y 6 0 NA
142000 270 NAmes 020 884 TA Y 4 0 NA
127000 649 NAmes 050 784 TA Y 6 0 NA
112000 398 OldTown 050 617 Fa Y 6 0 NA
99800 371 OldTown 030 713 TA Y 5 0 NA
117000 326 OldTown 020 833 TA Y 4 0 NA
108480 326 OldTown 030 1073 TA Y 4 0 NA
68000 660 NAmes 030 715 TA N 4 0 NA
86900 280 OldTown 050 448 Fa Y 5 0 NA
105000 936 OldTown 050 672 TA Y 6 0 NA
147000 264 NAmes 020 1135 TA Y 6 0 NA
115000 288 NAmes 020 912 TA Y 5 0 NA
120000 288 NAmes 020 864 TA Y 4 0 NA
129900 308 NAmes 020 816 TA Y 5 0 NA
147500 597 NAmes 050 910 TA Y 6 0 NA
135000 0 NAmes 050 720 TA N 6 0 NA
109500 625 NAmes 020 0 NA Y 5 0 NA
109900 420 NAmes 020 0 NA Y 4 0 NA
81400 400 NAmes 090 0 NA N 6 0 NA
87500 400 NAmes 090 0 NA N 6 0 NA
119000 0 NAmes 090 1556 TA Y 8 0 NA
141000 300 NAmes 020 1150 TA Y 6 0 NA
146000 288 NAmes 020 1150 TA Y 6 0 NA
134500 300 NAmes 085 925 TA Y 6 0 NA
105000 336 NAmes 020 864 TA Y 5 0 NA
124000 0 NAmes 190 1025 TA Y 6 0 NA
107000 210 OldTown 070 686 TA N 8 0 NA
135000 240 OldTown 050 1212 TA Y 6 0 NA
156500 400 OldTown 050 780 TA Y 7 0 NA
139900 576 OldTown 070 712 TA Y 7 0 NA
111500 576 OldTown 190 938 TA N 9 0 NA
108000 280 OldTown 030 1032 TA N 5 0 NA
105000 528 OldTown 020 576 TA Y 5 0 NA
116000 440 OldTown 050 648 Fa Y 6 0 NA
96900 216 OldTown 070 738 TA Y 7 0 NA
135500 576 OldTown 190 960 TA Y 5 0 NA
139000 450 OldTown 050 816 TA Y 7 0 NA
61500 200 OldTown 030 492 Fa Y 3 0 NA
64000 250 OldTown 030 798 TA Y 5 0 NA
137000 440 OldTown 190 1020 Fa N 9 0 NA
87000 779 OldTown 070 1095 TA N 8 0 NA
155000 432 OldTown 075 1226 TA Y 9 0 NA
79000 352 OldTown 050 540 TA N 6 0 NA
114504 216 OldTown 070 684 TA N 7 0 NA
157000 576 OldTown 070 596 Fa Y 8 0 NA
125000 312 OldTown 030 1200 TA Y 7 0 NA
125000 624 OldTown 020 960 TA Y 5 0 NA
64500 0 IDOTRR 050 1020 TA N 5 0 NA
88000 450 BrkSide 030 768 TA N 6 0 NA
80500 0 BrkSide 050 0 NA N 3 0 NA
110000 180 BrkSide 050 741 TA Y 7 0 NA
117000 255 OldTown 050 485 TA Y 5 0 NA
116500 390 IDOTRR 070 396 Fa Y 7 0 NA
72000 0 IDOTRR 030 610 TA N 4 0 NA
150000 576 Sawyer 090 1921 TA Y 8 0 NA
130000 288 ClearCr 080 1062 TA Y 6 0 NA
80000 180 SWISU 030 830 TA Y 4 0 NA
157000 246 SWISU 020 1073 Gd Y 4 0 NA
154500 264 Sawyer 020 1059 TA Y 6 0 NA
156500 580 Sawyer 090 1967 Gd Y 10 0 NA
157000 586 Sawyer 090 1949 TA Y 10 0 NA
145000 364 Sawyer 080 648 TA Y 3 0 NA
130000 576 Sawyer 085 782 Gd Y 4 0 NA
148400 450 ClearCr 150 430 Gd Y 7 0 NA
136900 325 Edwards 050 994 TA Y 7 0 NA
149900 305 Edwards 050 1000 TA Y 7 0 NA
123500 308 Edwards 020 980 Ex Y 6 0 NA
224500 920 SawyerW 090 1344 Gd Y 8 0 NA
183600 632 CollgCr 020 1208 Gd Y 6 0 NA
221500 865 CollgCr 020 1614 Gd Y 7 0 NA
204900 675 CollgCr 020 1498 Gd Y 5 0 NA
239799 868 CollgCr 060 1391 Gd Y 7 0 NA
181000 610 CollgCr 060 784 Gd Y 6 0 NA
148000 576 CollgCr 085 870 Gd Y 5 0 NA
193000 591 CollgCr 020 1425 Gd Y 5 0 NA
217000 576 CollgCr 020 1479 Gd Y 6 0 NA
214000 472 CollgCr 020 1588 Gd Y 6 0 NA
196000 515 CollgCr 060 842 Gd Y 7 0 NA
200000 492 CollgCr 060 916 Gd Y 8 0 NA
157500 317 CollgCr 060 675 Gd Y 6 0 NA
174000 672 CollgCr 080 995 TA Y 6 0 NA
119900 297 CollgCr 020 864 TA Y 5 0 NA
137000 484 Landmrk 160 630 Gd Y 5 0 NA
222000 591 CollgCr 060 826 Gd Y 6 0 NA
197000 529 CollgCr 060 872 Gd Y 8 0 NA
230000 900 CollgCr 020 1654 Gd Y 6 0 NA
207000 545 CollgCr 020 1390 Gd Y 7 0 NA
200000 544 CollgCr 020 1682 Gd Y 7 0 NA
203160 578 CollgCr 060 851 Gd Y 7 0 NA
195800 572 CollgCr 060 784 Gd Y 6 0 NA
212900 782 CollgCr 020 1552 Gd Y 7 0 NA
196500 565 CollgCr 060 860 Gd Y 7 0 NA
198000 502 CollgCr 020 1336 Gd Y 6 0 NA
98000 528 Edwards 070 676 Gd Y 6 0 NA
102000 396 Edwards 020 836 Fa Y 6 0 NA
119900 360 Edwards 020 1176 Gd Y 5 0 NA
117250 0 Edwards 020 914 Gd Y 4 0 NA
142500 525 Edwards 180 547 Gd Y 5 0 NA
134000 380 Edwards 160 970 Gd Y 7 0 NA
137500 380 Edwards 160 970 Gd Y 7 0 NA
97900 265 Edwards 050 624 Fa Y 5 0 NA
92000 528 Edwards 050 832 Fa Y 7 0 NA
107000 288 Edwards 050 1093 TA N 9 0 NA
81000 0 Edwards 050 658 TA Y 8 0 NA
115000 572 Edwards 020 864 TA Y 5 0 NA
116000 280 Edwards 050 686 TA Y 7 0 NA
128000 440 SWISU 190 780 TA N 6 0 NA
102000 0 SWISU 050 1008 TA Y 7 0 NA
112000 240 SWISU 050 824 Fa N 6 0 NA
102000 215 IDOTRR 030 976 TA N 5 0 NA
145400 506 IDOTRR 050 861 TA Y 6 0 NA
72000 0 IDOTRR 030 432 Fa N 4 0 NA
108000 570 IDOTRR 050 637 TA Y 7 0 NA
35311 308 IDOTRR 020 480 TA N 4 0 NA
115000 0 IDOTRR 190 660 TA N 8 0 NA
78000 0 IDOTRR 050 216 Fa N 6 0 NA
209000 490 Mitchel 020 1491 Ex Y 7 0 NA
135000 504 Mitchel 090 975 Gd Y 4 0 NA
148000 528 Mitchel 080 1128 TA Y 6 0 NA
171000 766 Mitchel 090 1907 TA Y 9 0 NA
230000 312 GrnHill 120 0 NA Y 5 0 NA
250000 693 Timber 060 1216 Gd Y 8 0 NA
81500 270 Mitchel 020 0 NA Y 6 0 NA
215000 784 Mitchel 090 1288 Gd Y 8 0 NA
153500 405 Mitchel 120 1237 Ex Y 5 0 NA
126500 288 Mitchel 020 864 TA Y 5 0 NA
146500 928 Mitchel 090 1652 TA Y 8 0 NA
79400 253 MeadowV 160 546 TA Y 5 0 NA
92000 0 MeadowV 180 630 Gd Y 3 0 NA
87550 286 MeadowV 160 546 TA Y 5 0 NA
90500 0 MeadowV 160 546 TA Y 5 0 NA
71000 286 MeadowV 160 546 TA Y 6 0 NA
150900 574 Mitchel 090 1728 TA Y 8 0 NA
188000 560 Mitchel 090 1728 TA Y 8 0 NA
131000 484 Mitchel 020 864 Gd Y 5 0 NA
# Convert NAs to "none" where stated in codebook
ames_all <- ames_all |> 
  mutate(bsmt_qual = fct_expand(bsmt_qual, "no_bsmt"), # add a new level to the factor
         bsmt_qual = replace_na(bsmt_qual, "no_bsmt"), # recode NA to that new level
         fireplace_qu = fct_expand(fireplace_qu, "no_fireplace"), 
         fireplace_qu = replace_na(fireplace_qu, "no_fireplace"))

# review order of levels b/c they are ordinal, no fireplace/basement is worst
ames_all$bsmt_qual |> levels()
[1] "Ex"      "Fa"      "Gd"      "TA"      "no_bsmt"
ames_all$fireplace_qu |> levels()
[1] "Ex"           "Fa"           "Gd"           "Po"           "TA"          
[6] "no_fireplace"
bq_levels <- c("no_bsmt", "Po", "Fa", "TA", "Gd", "Ex") 
ames_all <- ames_all |> 
  mutate(bsmt_qual = forcats::fct_relevel(bsmt_qual, bq_levels)) 
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `bsmt_qual = forcats::fct_relevel(bsmt_qual, bq_levels)`.
Caused by warning:
! 1 unknown level in `f`: Po
# the warning about the missing level "Po" is OK.  No basements were rated poor
ames_all$bsmt_qual |> levels()
[1] "no_bsmt" "Fa"      "TA"      "Gd"      "Ex"     
fq_levels <- c("no_fireplace", "Po", "Fa", "TA", "Gd", "Ex")
ames_all <- ames_all |> 
  dplyr::mutate(fireplace_qu = forcats::fct_relevel(fireplace_qu, fq_levels)) 

ames_all$fireplace_qu |> levels()
[1] "no_fireplace" "Po"           "Fa"           "TA"           "Gd"          
[6] "Ex"          

Missing data notes: Basement and fireplace quality both have high numbers of missing values. The codebook explicitly states that ‘NA’ for these variables represents observations that do not have garages or fireplaces (we can also see that these observations have either garage areas of 0 or 0 fireplaces respectively). These observations may be better represented as “no basement” ” and “no fireplace” than missing (though this may not be best for the ordinal nature of these variables). We can explore that further during modeling EDA

Numeric variables

Explore min and max values for numeric variables, recording notes on any observations that look suspicious or potentially invalid. Use the data dictionary and associated variables to help you decide whether suspicious observations may represent (in)valid responses.

# skim data, looking at numeric min and max values
ames_all |>
  skim_some() |> 
  filter(skim_type == "numeric") |>  # Select only numeric variables since min/max only apply to them
  select(skim_variable, numeric.p0, numeric.p100)
# A tibble: 5 × 3
  skim_variable   numeric.p0 numeric.p100
  <chr>                <dbl>        <dbl>
1 sale_price           12789       745000
2 garage_area              0         1488
3 total_bsmt_sf            0         6110
4 tot_rms_abv_grd          3           14
5 fireplaces               0            3
# 14 rooms above ground isn't impossible, but seems high. Lets take a look
ames_all |> 
  filter(tot_rms_abv_grd == 14) |>
  print_kbl() 
sale_price garage_area neighborhood ms_sub_class total_bsmt_sf bsmt_qual central_air tot_rms_abv_grd fireplaces fireplace_qu
2e+05 0 SWISU 190 1440 TA Y 14 0 no_fireplace

Numeric variable notes: Numeric values appear to be in the expected range. There were no numeric values coded as factor that made sense to convert to examine min/max values (e.g. ms_sub_class is not ordinal, doesn’t make sense to look at numeric values). I thought 14 rooms above ground seemed like a lot and looked at that one further – the observation with 14 rooms above ground had an ms_sub_class of “190” indicating it is a 2 family conversion home, which makes this number more believable. No changes need to be made at this step because its not an obvious error. We can explore it as a possible outlier further in modeling EDA

Categorical variables

print the levels of each categorical variable. Used walk() to do all the categorical variables at once. You can use tidy_responses() (a function from John) to convert all responses to snake_case. Check to make sure all levels converted properly. If needed, correct response levels with conversion errors using mutate() and fct_recode(). Document observations for categorical levels.

# View all categorical response labels
ames_all |> 
  select(where(is.factor)) |>
  walk(\(column) print(levels(column)))
 [1] "Blmngtn" "Blueste" "BrDale"  "BrkSide" "ClearCr" "CollgCr" "Crawfor"
 [8] "Edwards" "Gilbert" "Greens"  "GrnHill" "IDOTRR"  "Landmrk" "MeadowV"
[15] "Mitchel" "NAmes"   "NoRidge" "NPkVill" "NridgHt" "NWAmes"  "OldTown"
[22] "Sawyer"  "SawyerW" "Somerst" "StoneBr" "SWISU"   "Timber"  "Veenker"
 [1] "020" "030" "040" "045" "050" "060" "070" "075" "080" "085" "090" "120"
[13] "150" "160" "180" "190"
[1] "no_bsmt" "Fa"      "TA"      "Gd"      "Ex"     
[1] "N" "Y"
[1] "no_fireplace" "Po"           "Fa"           "TA"           "Gd"          
[6] "Ex"          
# Tidy all character responses except ms_sub_class (since these are numbers and do not need to be tidied)
ames_all <- ames_all |>
  mutate(across(where(is.factor) & !all_of("ms_sub_class"), tidy_responses))

# Check response labels
ames_all |> 
  select(where(is.factor)) |>
  walk(\(column) print(levels(column)))
 [1] "blmngtn" "blueste" "brdale"  "brkside" "clearcr" "collgcr" "crawfor"
 [8] "edwards" "gilbert" "greens"  "grnhill" "idotrr"  "landmrk" "meadowv"
[15] "mitchel" "names"   "noridge" "npkvill" "nridght" "nwames"  "oldtown"
[22] "sawyer"  "sawyerw" "somerst" "stonebr" "swisu"   "timber"  "veenker"
 [1] "020" "030" "040" "045" "050" "060" "070" "075" "080" "085" "090" "120"
[13] "150" "160" "180" "190"
[1] "no_bsmt" "fa"      "ta"      "gd"      "ex"     
[1] "n" "y"
[1] "no_fireplace" "po"           "fa"           "ta"           "gd"          
[6] "ex"          

Categorical variable notes: Since tidy_responses adds x before numeric variables, we opted to tidy all character responses except ms_sub_class so we would not need to correct these labels later (there is nothing to tidy when responses are completely numeric). We notice that ms_sub_class is best considered nominal, quality variables are best considered ordinal , and that neighborhood has many levels that I might consider collapsing, but these types of conversions will occur during eda_modeling.

Train test split

Now that we have completed our data cleaning, we will split our data into train and test sets and save out the cleaned files. Since John held out a separate test set from the data we were given, your split will actually create our training and validation sets. We will use his holdout set as the test data.

Generate a train/test split

Assign 25% of the data to be our validation set. Stratify this split on the sale_price variable.

set.seed(12345)
splits <- ames_all %>% 
  initial_split(prop = 3/4, strata = "sale_price", breaks = 4)

Save cleaned files

Save out cleaned train and validation sets as csv files and name them hw_unit_2_train.csv and hw_unit_2_val.csv.

splits |> 
  analysis() |> 
  glimpse() |> 
  write_csv(here::here(path_data, "ames_clean_class_trn.csv"))
Rows: 1,465
Columns: 10
$ sale_price      <dbl> 105000, 126000, 115000, 127500, 120000, 99500, 125000,…
$ garage_area     <dbl> 730, 525, 0, 440, 308, 264, 264, 429, 539, 260, 0, 0, …
$ neighborhood    <fct> names, names, names, npkvill, npkvill, sawyerw, sawyer…
$ ms_sub_class    <fct> 020, 020, 020, 120, 120, 120, 120, 030, 090, 020, 020,…
$ total_bsmt_sf   <dbl> 882, 882, 864, 1069, 836, 918, 744, 816, 0, 1040, 950,…
$ bsmt_qual       <fct> ta, ta, ta, gd, gd, gd, gd, ta, no_bsmt, ta, ta, ta, t…
$ central_air     <fct> y, y, y, y, y, y, y, n, y, y, y, y, y, y, y, y, y, y, …
$ tot_rms_abv_grd <dbl> 5, 4, 5, 4, 4, 5, 4, 5, 8, 6, 6, 10, 4, 6, 6, 6, 5, 4,…
$ fireplaces      <dbl> 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
$ fireplace_qu    <fct> no_fireplace, no_fireplace, po, fa, no_fireplace, ta, …
splits |> 
  assessment() |> 
  glimpse() |> 
  write_csv(here::here(path_data, "ames_clean_class_val.csv"))
Rows: 490
Columns: 10
$ sale_price      <dbl> 189900, 105500, 306000, 222500, 355000, 221500, 204500…
$ garage_area     <dbl> 482, 320, 772, 434, 962, 880, 676, 678, 280, 762, 588,…
$ neighborhood    <fct> gilbert, brdale, nridght, gilbert, noridge, somerst, s…
$ ms_sub_class    <fct> 060, 160, 020, 060, 060, 020, 020, 060, 020, 060, 160,…
$ total_bsmt_sf   <dbl> 928, 525, 1704, 884, 1629, 1595, 1218, 991, 882, 1231,…
$ bsmt_qual       <fct> gd, ta, ex, gd, ex, gd, gd, gd, ta, gd, gd, gd, gd, ta…
$ central_air     <fct> y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, y, …
$ tot_rms_abv_grd <dbl> 6, 6, 7, 8, 7, 6, 4, 8, 5, 9, 3, 4, 7, 7, 6, 7, 7, 8, …
$ fireplaces      <dbl> 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 2, 1, 0, …
$ fireplace_qu    <fct> ta, no_fireplace, gd, gd, ta, gd, no_fireplace, gd, no…