We suggest listening to this song as background music to read this section.
“Adopt don’t shop!” We both are big dog-lovers and are very fond of the idea of adopting pets to save them from a shelter. Kelsey has a former shelter dog as a member of her family, and Jeff is considering adopting his own dog soon. With this in mind, we realized the importance of understanding what dogs are available in shelters and making that information readily available to prospective dog owners. With an easier process and the understanding that dogs that meet their specifications exist in shelters, the likelihood of shelter adoptions increases. With approximately 3.3 million dogs entering the shelter system each year in the US, it’s important to encourage and enable shelter adoption wherever possible.
In this project, we plan to use summary statistics and data exploration in R to discover trends and insights on location and availability of adoptable pets. This analysis will allow a better understanding of the pet availability. We will be able to create visualizations on this data as well.
The Petfinder dataset includes data on all adoptable dogs in the US on Petfinder.com as of 9/20/2019. The full Petfinder dataset consists of three unique datasets, listed below:
dog_descriptions
)dog_travel
)dog_moves
)Additional details about the three datasets can be located in the Data Preparation tab.
With the chosen data, there are many options for analysis on the details and movement of dogs found on Petfinder. With our analysis, we wanted to utilize the data in a way that would help families find pets and also assist shelters in their process. The planned analysis can be found below:
We will consider the consumers of the analysis to be both animal shelters and those looking to adopt pets, as both can benefit from use of the analysis. The results of our dog demographics by state can be used by people looking for pets to help them understand what types of dogs they are likely to find available in their area. This can help set realistic expectations and goals for their search. The correlation between age, sex, and size, compared to envy of children, dogs, and cats, will also be helpful for hopeful pet owners. If they have a child, dog, or cat, they will know what types of dogs to filter their search to so that they find a good fit for their family. For dogs missing data on envy, this can be helpful for families to understand the general likelihood of the factor before spending time meeting the dog, which can make their process more efficient. Shelters could also use these results to preliminarily classify a dog and estimate whether it will get along with children and other animals. While they will still need to confirm the theory, these correlations could indicate what those responses might be so that they are prepared. Finally, the analysis examining the importation/exportation of dogs will be helpful to shelters. If they have a need to export a dog somewhere else, this data will give them a better understanding of which states typically accept transfers so that they can narrow their options and quickly find a solution.
As mentioned in the project description there are thousands of packages in R that allow for deeper analysis, more effective visualization of data, and cleaning or shaping datasets. The packages below carry much of the added functionality that we currently anticipate needing. Obviously, as we progress through our project, there will likely be more packages that we will add to the list.
Not all packages are built equally of course. Of the below packages, there are some that we will use more intensively and at different times in our analysis. For example, “DT” and “dyplr” will help us to manipulate and shape the data as needed, while “ggplot2” will help us to visualize it.
A type of package that we currently have limited experience with, but think will be helpful as we progress through our project, are ones that allow for more in-depth formatting in publication of rmarkdown.
library(dplyr) #cleaning data
library(ggplot2) #visualization, plotting, and graphing of data
library(rmarkdown) #create final report
library(readr) #import data from excel files
library(DT) #visualize data in table format
library(plyr) #statistical analysis
library(ggmap) #map vizualization
Data selected for this project originally came from our professor, Alexandros Paparas amongst four other datasets. The data is from a GitHub. The GitHub, credits Amber Thomas and Sacha Maxim with scraping the data for their article, Finding Forever Homes from Petfinder.
As mentioned above, the data was initially used by Thomas and Maxim to write an article and create an analysis breaking down dog adoptions by state and breed. Before that even, the data is pulled from Petfinder which compiles information on dog adoptions from shelters across the United States.
The data includes all dogs listed on Petfinder on September 20, 2019. The dataset contains three separate tables:
dog_descriptions and dog_travel are linked by a variable called “id” that serves as a UNID.
Overall, missing data is denoted by NA. There are some variables, such as “declawed”, which are composed of records that are entirely NA. This variable is likely meant for cats and is a variable that can be either dropped or ignored. Two other variables that are essentially unnecessary are “species” and “type” as the dataset is composed entirely of dogs.
Lastly, “name” alternates between capital and lowercase letters. This is a peculiarity, but something that does not affect our analysis.
Our first step in this step was to set the working directory and import the three tables.
#setwd("C:/Users/bogen/OneDrive - University of Cincinnati/Spring 2021/Data Wrangling/Project") #sets working directory
setwd("C:/Users/Kelsey/Desktop/MS BANA/Data Wrangling/Midterm/Petfinder") #Kelsey's wd
#setwd() #user's wd
dog_descriptions <- read.csv('dog_descriptions.csv') #imports dog_descriptions table
dog_travel <- read.csv('dog_travel.csv') #imports dog_travel table
dog_moves <- read.csv('dog_moves.csv') #imports dog_moves table
Attacking one table at a time, we then moved to the dog_description table. In the dog_description table, we re-formatted the posted variable from time to just day. Next we corrected all variable names to the same format, changing “stateQ” to “state_q”.
head(dog_descriptions, 10) #shows first 10 lines
## id org_id
## 1 46042150 NV163
## 2 46042002 NV163
## 3 46040898 NV99
## 4 46039877 NV202
## 5 46039306 NV184
## 6 46039304 NV184
## 7 46039303 NV184
## 8 46039302 NV184
## 9 46039301 NV184
## 10 46038709 NV184
## url
## 1 https://www.petfinder.com/dog/harley-46042150/nv/las-vegas/animal-network-nv163/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 2 https://www.petfinder.com/dog/biggie-46042002/nv/las-vegas/animal-network-nv163/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 3 https://www.petfinder.com/dog/ziggy-46040898/nv/mesquite/city-of-mesquite-animal-shelter-nv99/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 4 https://www.petfinder.com/dog/gypsy-46039877/nv/pahrump/pets-are-worth-saving-paws-nv202/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 5 https://www.petfinder.com/dog/theo-46039306/nv/henderson/wagging-tails-rescue-nv184/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 6 https://www.petfinder.com/dog/oliver-46039304/nv/henderson/wagging-tails-rescue-nv184/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 7 https://www.petfinder.com/dog/macadamia-46039303/nv/henderson/wagging-tails-rescue-nv184/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 8 https://www.petfinder.com/dog/dodger-46039302/nv/henderson/wagging-tails-rescue-nv184/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 9 https://www.petfinder.com/dog/huckleberry-46039301/nv/henderson/wagging-tails-rescue-nv184/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## 10 https://www.petfinder.com/dog/fagin-46038709/nv/henderson/wagging-tails-rescue-nv184/?referrer_id=87b31e7d-4508-41d1-95ff-fdb59b9d4669
## species breed_primary breed_secondary breed_mixed
## 1 Dog American Staffordshire Terrier Mixed Breed TRUE
## 2 Dog Pit Bull Terrier Mixed Breed TRUE
## 3 Dog Shepherd <NA> FALSE
## 4 Dog German Shepherd Dog <NA> FALSE
## 5 Dog Dachshund <NA> FALSE
## 6 Dog Boxer Beagle TRUE
## 7 Dog Italian Greyhound Chihuahua TRUE
## 8 Dog Cattle Dog <NA> TRUE
## 9 Dog Cattle Dog <NA> TRUE
## 10 Dog Cattle Dog <NA> TRUE
## breed_unknown color_primary color_secondary
## 1 FALSE White / Cream Yellow / Tan / Blond / Fawn
## 2 FALSE Brown / Chocolate White / Cream
## 3 FALSE Brindle <NA>
## 4 FALSE <NA> <NA>
## 5 FALSE <NA> <NA>
## 6 FALSE <NA> <NA>
## 7 FALSE <NA> <NA>
## 8 FALSE <NA> <NA>
## 9 FALSE <NA> <NA>
## 10 FALSE <NA> <NA>
## color_tertiary age sex size coat fixed house_trained declawed
## 1 <NA> Senior Male Medium Short TRUE TRUE NA
## 2 <NA> Adult Male Large Short TRUE TRUE NA
## 3 <NA> Adult Male Large Short TRUE FALSE NA
## 4 <NA> Baby Female Large <NA> FALSE FALSE NA
## 5 <NA> Young Male Small Long TRUE FALSE NA
## 6 <NA> Baby Male Medium Short TRUE FALSE NA
## 7 <NA> Baby Female Small Short TRUE FALSE NA
## 8 <NA> Baby Male Medium Medium TRUE FALSE NA
## 9 <NA> Baby Female Medium Medium TRUE FALSE NA
## 10 <NA> Baby Male Medium Medium TRUE FALSE NA
## special_needs shots_current env_children env_dogs env_cats name
## 1 FALSE TRUE NA NA NA HARLEY
## 2 FALSE TRUE NA NA NA BIGGIE
## 3 FALSE TRUE NA NA NA Ziggy
## 4 FALSE FALSE NA NA NA Gypsy
## 5 FALSE TRUE TRUE TRUE TRUE Theo
## 6 FALSE TRUE TRUE TRUE TRUE Oliver
## 7 FALSE TRUE TRUE TRUE TRUE Macadamia
## 8 FALSE TRUE TRUE TRUE TRUE Dodger
## 9 FALSE TRUE TRUE TRUE TRUE Huckleberry
## 10 FALSE TRUE TRUE TRUE TRUE Fagin
## tags photo status posted contact_city
## 1 <NA> <NA> adoptable 2019-09-20T16:37:59+0000 Las Vegas
## 2 <NA> <NA> adoptable 2019-09-20T16:24:57+0000 Las Vegas
## 3 <NA> <NA> adoptable 2019-09-20T14:10:11+0000 Mesquite
## 4 <NA> <NA> adoptable 2019-09-20T10:08:22+0000 Pahrump
## 5 <NA> <NA> adoptable 2019-09-20T06:48:30+0000 Henderson
## 6 <NA> <NA> adoptable 2019-09-20T06:43:59+0000 Henderson
## 7 <NA> <NA> adoptable 2019-09-20T06:42:30+0000 Henderson
## 8 <NA> <NA> adoptable 2019-09-20T06:40:08+0000 Henderson
## 9 <NA> <NA> adoptable 2019-09-20T06:37:05+0000 Henderson
## 10 <NA> <NA> adoptable 2019-09-20T05:00:51+0000 Henderson
## contact_state contact_zip contact_country stateQ accessed type
## 1 NV 89147 US 89009 2019-09-20 Dog
## 2 NV 89147 US 89009 2019-09-20 Dog
## 3 NV 89027 US 89009 2019-09-20 Dog
## 4 NV 89048 US 89009 2019-09-20 Dog
## 5 NV 89052 US 89009 2019-09-20 Dog
## 6 NV 89052 US 89009 2019-09-20 Dog
## 7 NV 89052 US 89009 2019-09-20 Dog
## 8 NV 89052 US 89009 2019-09-20 Dog
## 9 NV 89052 US 89009 2019-09-20 Dog
## 10 NV 89052 US 89009 2019-09-20 Dog
## description
## 1 Harley is not sure how he wound up at shelter in his senior years but as you see from the pictures the shelter asked if we could find a real home for this active senior boy. You would never know he is 9 years old. Very playful and loves humans and all the dogs he has met at adoptions he seems to like. He is 59 lbs so still pretty strong for a senior but loves walks and you have to love his ears. If you would like to meet this happy go lucky boy please contact AdoptAnimalNetwork@gmail.com. Updated pictures this Sunday.
## 2 6 year old Biggie has lost his home and really wants a home of his own. We are getting more information about him, does well with other dogs if introduced properly. We know he is a big cuddle bunny but more info and pictures will be up Sunday. If you want to meet Biggie please contact AdoptAnimalNetwork@gmail.com
## 3 Approx 2 years old.\n Did I catch your eye? I don't blame you if you had to stop and stare, I am quite cute if I do say so myself. I'm Ziggy and I think you look like a wonderful choice for my forever friend! I don't give my heart away at the drop of a hat, but if you will give me some time and space to settle in and adjust to my new life, we can be buddies. Once I'm comfortable, I love to go on walks, play, and spend time curled up with my best friends. \nZiggy is shy until he knows you and feels safe. He was found as a stray so we have no history on him. He is learning to trust, loves being petted and having belly rubs. He will follow you around the yard. He knows sit and is learning to walk on a leash. He is unsure about what toys are for but shows interest in them.\nBeautiful colors in his brindle coat. \n\n\nAdoption fee $60 (cash or check) includes neuter, rabies and DHPPC vaccination
## 4 <NA>
## 5 Theo is a friendly dachshund mix who gets along well with other dogs in his size range. This cute boy is on the submissive side and will thrive in a home with lots of love to grow his confidence. He is approximately 8 lbs and 1 year old. Meet me Saturday from 11 to 1 at Petco, 645 S. Green Valley Pkwy in Henderson. If you are interested in adopting please submit an application at www.waggingtailsrescue.org.
## 6 Oliver was born around mid-June and came to us recently after living most of his life left in a backyard. He is loving getting all of the love and attention that he can in his foster home, discovering fun toys and just how comfy the couch is! We are guessing him to be primarily Boxer/Beagle and around 50 lbs when fully grown. \n\nMeet me Saturday from 11 to 1 at Petco, 645 S. Green Valley Pkwy in Henderson. If you are interested in adopting please submit an application at www.waggingtailsrescue.org.
## 7 Macadamia was born around July 8th and donâÂ\200Â\231t let her serious face fool you, this girl is all puppy mischief and fun! She is expected to be approximately 12 lbs when fully grown. Meet me Saturday from 11 to 1 at Petco, 645 S. Green Valley Pkwy in Henderson. If you are interested in adopting please submit an application at www.waggingtailsrescue.org.
## 8 Dodger is a handsome, smart Heeler mix who was born on May 26th. He has a lot of energy and needs an active home. He weighs 22 lbs currently and is estimated to be around 50 lbs when fully grown. Meet me Saturday from 11 to 1 at Petco, 645 S. Green Valley Pkwy in Henderson. If you are interested in adopting please submit an application at www.waggingtailsrescue.org.
## 9 Huckleberry is a friendly girl who was born May 26th. She is full of energy and will be best suited to a home with the time and patience for a puppy. She weighs 22 lbs currently and is expected to be around 50 lbs when fully grown.Meet me Saturday from 11 to 1 at Petco, 645 S. Green Valley Pkwy in Henderson. If you are interested in adopting please submit an application at www.waggingtailsrescue.org.
## 10 Fagin was born on May 26th and is a smart, inquisitive boy who will excel in a home with the time and training for a puppy. He weighs 22 lbs and is expected to be approximately 50 lbs when fully grown. Meet me Saturday from 11 to 1 at Petco, 645 S. Green Valley Pkwy in Henderson. If you are interested in adopting please submit an application at www.waggingtailsrescue.org.
dog_descriptions$posted <- strtrim(dog_descriptions$posted, 10) #trim "posted" variable
dog_descriptions$posted <- as.Date(dog_descriptions$posted) #re-format "posted" variable from time and day to just day
rename(dog_descriptions, state_q = stateQ) #changed stateQ to state_q
## Error in rename(dog_descriptions, state_q = stateQ): unused argument (state_q = stateQ)
After this, since the table contains 34 variables, we removed the variables that are not used in the analysis to keep our dataset succinct and easy to work with. We removed the following variables:
dog_descriptions <- dog_descriptions[,-c(3,4,9:11,15:20,25:27,33:36)] #removing unused variables from above
For the dog_travel table, we imputed the values from “found” into the NA observations for “manual”. This is because in the event that a city was listed for “found”, the state (or country if outside of the US) was moved to the “manual” column. In imputing, we made the most accurate “found” variable by state that we could. As such, after imputing, we changed the name to “found_state”.
head(dog_travel, 10) #shows first 10 lines
## id contact_city contact_state
## 1 44520267 Anoka MN
## 2 44698509 Groveland FL
## 3 45983838 Adamstown MD
## 4 44475904 Saint Cloud MN
## 5 43877389 Pueblo CO
## 6 43082511 Manchester CT
## 7 45287347 Wooster OH
## 8 45287347 Wooster OH
## 9 45987719 Locust Fork AL
## 10 45943086 Locust Fork AL
## description
## 1 Boris is a handsome mini schnauzer who made his long trek up her from Arkansas on 4/2019. He loves rope toys and running around his foster mom's yard. \n\nHe is 4 years old, just under 10 pounds, and is a special needs dog. He needs vitamin B-12 shots every other week (may change), and needs prescription dog food with no meet or protein. Boris is on a vegan diet.\n\nIf interested in Boris please fill out or adoption application so we can set up a meet and greet for you! His foster mom can explain more in-depth about his needs and can answer any questions you may have about his lifestyle.\n\nBoris' adoption fee is $300 and the application can be found at http://www.aohrescue.org/dog-adoption-application
## 2 Duke is an almost 2 year old Potcake from Abacos in the Bahamas. He is a happy boy, who loves his toys and bones, getting loving, riding in the car, snuggling on the couch and is a bit of a prankster. We suggest a home without other dogs because he can get possessive over his \\"babies\\" (stuffed animals) and a home without kids because he will challenge you until he accepts you as the alpha. He also loves kiddie swimming pools, is crate trained and loves running around in a fenced in yard being goofy playing.\n\nApplications available at www.islanddogrescue.net. He is fully vetted with vaccines, deworming, is neutered, heartworm negative, on heartworm prevention, is microchipped and on flea prevention.\n\n9/16/19 6:09 PM
## 3 Zac Woof-ron is a heartthrob movie star looking to settle down with the right person! \n\nAs you know from his movie career, Zac is a 2-year-old, purebred red heeler male, about 37 pounds and high energy. After finishing his press tour for his latest movie, âÂ\200œMission Impossible: ACDâÂ\200Â\235, Zac came into foster care with ACDRA with the goal of retiring from the fast-paced motion picture industry and finding a forever home. Accordingly, ZacâÂ\200Â\231s publicist agreed to finally let us share his full life story so far. You see, Zac was tied outside for most of his young life, with little to no interaction with people or other dogs. When his owner died, he was taken to a shelter in NC. Zac has been in foster care on a farm with 2 other ACDs, cows, and horses. \n\nAlthough he is a bit slow to warm up to new people, Zac quickly becomes your best friend. He absolutely must be with his person at all times and gives the best body hugs ever! He has great recall and therefore a fence isnâÂ\200Â\231t required. He would do best with an energetic person in an active home with a yard that is dedicated to exercising him mentally and physically. Zac would make a great running, biking, or hiking partner or even agility dog. Inside the house, Zac isnâÂ\200Â\231t destructive (he has had free run of the house) although he does like to relocate his foster dadâÂ\200Â\231s clothing around the house, and he settles right down to snuggle on your lap. He is already mostly potty trained and has learned to use the doggie door, sit, lie down, and wait. He will be easy to train as he is smart and highly food motivated. Zac loves to ride in the car and walks well on the leash. He has begun to show some interest in toys and fetch. Although Zac typically sleeps on the bed with his foster dad and canine housemates, he has occasionally been crated during the night and does just fine. \n\nZac would thrive best in an ACD-experienced home without children or cats. He needs a patient person who will be able to harness his energy (and occasional mouthiness) in order help him achieve his full potential as a good canine citizen through training and exercise. Although he gets along with his foster brother and sister, they are no match for his energy level. Therefore, Zac requests a home with another dog who likes to chase and roughhouse as much as he does! \n\nZac is neutered, microchipped, heartworm negative, and up to date on HW and flea/tick prevention.He is located in Adamstown, MD.\n\nFor questions, please contact mdrancherld@yahoo.com.\n\nCOMPLETE AN APPLICATION\nhttp://www.acdra.org/adoption-application\n\n\n\n\n
## 4 ~~Came in to the shelter as a transfer from another rescue ~~Interacted with other dogs and was cautious around them ~~Unknown if he has had a chance to meet children or cats ~~Slow and proper introductions are recommended; ask a staff member for more information ~~Very affectionate with staff on intake ~~Can be a little shy when first meeting new people but warms up quickly ~~Would benefit from a wide variety of toys to play with ~~Since he was a transfer not much is known about his house training and would do best kept on a schedule ~~ He has been shy and fearful while in the kennel ~~ May need time and space to warm up to new environments ~~ The use of Adaptil for stress management is recommended; available in the TCHS Re-Tail Shoppe ~~ Would benefit from basic obedience classes for additional socialization, confidence building, and to bond with his new family ~~ This sweet and shy boy cannot wait to meet his new people! ~~Donations and adoption fees help cover the cost of spay/neuter surgeries, micro-chipping, vaccinating, de-worming, any medical procedures and general care ~~DEPOSITS MAY BE PLACED ON ADOPTABLE ANIMALS by calling 320-252-0896
## 5 Palang is such a sweetheart. She loves her people very much and likes getting loved on. She can be shy at first. She came from Afghanistan so we arenâÂ\200Â\231t sure of her breed. She is partially deaf. She does have a bite history, so will need a home with no children and visitors. She also prefers taller and slender people. Age: 4 Years
## 6 Brooke has an unusual past. She was rescued from Afghanistan as a puppy and made her way to the US to our sanctuary! She is a sight-hound mix and has all the wonderful attributes that they possess. If you would like a dog that can run like the wind then she is the dog for you! An ancient breed, they were the hunting dogs and Brooke certainly thinks she should be queen!\n\n \n\nThis speed and the unusual ability to see far into the distance necessitates a fenced in yard or a place that is fenced where she can stretch those long legs of hers! She walks well on leash but likes to be able to feel the wind in her fur!\n\n\nWe have asked Brooke what she would like in her very own home and she feels she would like an adult home who have dog experience. She also requests that she be the only animal in the home! The fenced in yard is a plus, lots of toys to enjoy and destuff, her very own bed, and people who love her sensitive side!\n\n\nTo learn more about this absolutely gorgeous gal, call Our Companions Animal Rescue at 242-9999 or e-mail daryl@ourcompanions.org\n\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~All of the pets promoted by Our Companions Animal Rescue are located in CT. As such we wish to adopt animals into homes in the greater CT area. Pets are in various locations so we request that an appointment is made to meet with a specific pet we are advertising. Contact the person listed on the petâÂ\200Â\231s profile to find out more about our adoption process for a specific pet or e-mail Helpline@ourcompanions.org for general inquiries.
## 7 Tate is an adorable 2 year old, 22 pound Cockapoo. She came to use from a local shelter where her owner had turned her in. Her owner was older and didn't have the time or energy for Tate. She came to us with a condition called Microphthalmia. This is where one eye is very small and often with other abnormalities. Tate could not see out of the eye and it was uncomfortable for her. We removed the eye which is completely healed.\n\nTate is very affectionate. She loves to play with toys and with other dogs. She loves to cuddle in bed and on the sofa. Tate is house trained and crate trained. She loves her walks but needs more leash training. We're working on it.. She likes to ride in the car. Tate does sleep in bed. She is good with respectful children that are 10 or older. Tate would love another dog to play with but would be fine with an interactive family that has a lot of time for her. We introduced Tate to cats and she would definitely chase if the cat would run. It doesn't appear that she would hurt the cat but unless the cat was VERY laid back she would do best without a cat in the home.\n\nTate is a sweet girl that had little training in her early life. She is very smart and eager to please. She and her new owner would have a lot of fun in an obedience class. Tate quickly learned to ring bells at the door to go outside but then took it a bit too far by ringing them too much. This shows us that she is eager to have an active family that will do a lot of things where she can be included. \n\nTate's adoption requirements are a fenced yard or area large enough for her to run and play that leads directly into the home. She is not a candidate for an underground fence. Tate needs someone who is not working a typical 8 hour work day; someone that works very part time, works from home and can their dog in their work space or someone that is retired. She would love children that are 10 or older in the home and would do super with another playful dog. If she is an only dog the family must be active with the time and desire to have a dog involved in a major part of their life. After having very little attention for the first two years of her life, Tate deserves to have a home where she is cherished. Tate's new home must continue with her natural care program. We will place Tate within an hour drive from Akron, OH. which includes the Cleveland, Akron/Canton, Youngstown area.\n\nStar-Mar Rescue is a natural care provider and we place our dogs in homes that are already on a natural care program or are eager to learn. We use no chemicals on our dogs, no commercial flea products (oral or topical), do blood titer testing instead of randomly vaccinating. Our yards are without fertilizer and weed killer and our homes are toxin free. We feel that dogs can be protected without being harmed by harsh chemicals and unnecessary vaccinations and do best on a species appropriate, no grain, raw diet. Frozen raw diets, freeze dried or dehydrated no grain. Raw, no grain foods are easily gotten at many pet stores and on line and are no more expensive than a high quality dry food. This simple step will provide your dog the nutrition needed to keep them healthy and happy for many years unlike feeding a lifetime of processed foods. We are happy to help with this transition. For more information go to Star-Mar Rescue Natural Care facebook page and click on \\"videos\\" in the column to the left and watch the 7 part series called The Truth About Pet Cancer. It will give you an understanding of what we are doing and why. Please do some research on natural care and raw feeding and decide whether or not you are wanting to care for Tate in this manner before requesting an application.\n\nIf you feel that your lifestyle and environment meet with Tate's needs, please directly contact Martha at learymjri@aol.com or call 330-466-3667 or 330-262-0515 for an application or more information. PLEASE DO NOT USE THE LINK PROVIDED AS IT IS NOT ALWAYS RELIABLE. Tate's adoption will require an approved application and a home visit, with adoption completed at her foster home in Akron, OH. Tate's adoption fee is $275. We will work to place her within an 1 hour driving distance from his foster home in Akron, OH. so that we can conduct a home visit bringing Tate with us. This includes the Cleveland, Akron/Canton, Youngstown, Elyria, Loraine areas of OH. \n\nSTAR-MAR RESCUE IS REGISTERED WITH THE OHIO DEPARTMENT OF AGRICULTURE AS REQUIRED BY LAW\n\n
## 8 Tate is an adorable 2 year old, 22 pound Cockapoo. She came to use from a local shelter where her owner had turned her in. Her owner was older and didn't have the time or energy for Tate. She came to us with a condition called Microphthalmia. This is where one eye is very small and often with other abnormalities. Tate could not see out of the eye and it was uncomfortable for her. We removed the eye which is completely healed.\n\nTate is very affectionate. She loves to play with toys and with other dogs. She loves to cuddle in bed and on the sofa. Tate is house trained and crate trained. She loves her walks but needs more leash training. We're working on it.. She likes to ride in the car. Tate does sleep in bed. She is good with respectful children that are 10 or older. Tate would love another dog to play with but would be fine with an interactive family that has a lot of time for her. We introduced Tate to cats and she would definitely chase if the cat would run. It doesn't appear that she would hurt the cat but unless the cat was VERY laid back she would do best without a cat in the home.\n\nTate is a sweet girl that had little training in her early life. She is very smart and eager to please. She and her new owner would have a lot of fun in an obedience class. Tate quickly learned to ring bells at the door to go outside but then took it a bit too far by ringing them too much. This shows us that she is eager to have an active family that will do a lot of things where she can be included. \n\nTate's adoption requirements are a fenced yard or area large enough for her to run and play that leads directly into the home. She is not a candidate for an underground fence. Tate needs someone who is not working a typical 8 hour work day; someone that works very part time, works from home and can their dog in their work space or someone that is retired. She would love children that are 10 or older in the home and would do super with another playful dog. If she is an only dog the family must be active with the time and desire to have a dog involved in a major part of their life. After having very little attention for the first two years of her life, Tate deserves to have a home where she is cherished. Tate's new home must continue with her natural care program. We will place Tate within an hour drive from Akron, OH. which includes the Cleveland, Akron/Canton, Youngstown area.\n\nStar-Mar Rescue is a natural care provider and we place our dogs in homes that are already on a natural care program or are eager to learn. We use no chemicals on our dogs, no commercial flea products (oral or topical), do blood titer testing instead of randomly vaccinating. Our yards are without fertilizer and weed killer and our homes are toxin free. We feel that dogs can be protected without being harmed by harsh chemicals and unnecessary vaccinations and do best on a species appropriate, no grain, raw diet. Frozen raw diets, freeze dried or dehydrated no grain. Raw, no grain foods are easily gotten at many pet stores and on line and are no more expensive than a high quality dry food. This simple step will provide your dog the nutrition needed to keep them healthy and happy for many years unlike feeding a lifetime of processed foods. We are happy to help with this transition. For more information go to Star-Mar Rescue Natural Care facebook page and click on \\"videos\\" in the column to the left and watch the 7 part series called The Truth About Pet Cancer. It will give you an understanding of what we are doing and why. Please do some research on natural care and raw feeding and decide whether or not you are wanting to care for Tate in this manner before requesting an application.\n\nIf you feel that your lifestyle and environment meet with Tate's needs, please directly contact Martha at learymjri@aol.com or call 330-466-3667 or 330-262-0515 for an application or more information. PLEASE DO NOT USE THE LINK PROVIDED AS IT IS NOT ALWAYS RELIABLE. Tate's adoption will require an approved application and a home visit, with adoption completed at her foster home in Akron, OH. Tate's adoption fee is $275. We will work to place her within an 1 hour driving distance from his foster home in Akron, OH. so that we can conduct a home visit bringing Tate with us. This includes the Cleveland, Akron/Canton, Youngstown, Elyria, Loraine areas of OH. \n\nSTAR-MAR RESCUE IS REGISTERED WITH THE OHIO DEPARTMENT OF AGRICULTURE AS REQUIRED BY LAW\n\n
## 9 Meet Trixie... she is a female 2yr. Old Chihuahua mix . She is about 10 to 12 lbs. She is very sweet , quiet , and calm. She is housebroken. She is great with other dogs. She came into rescue pregnant, and heart worm positive. . All her puppies have been adopted, so its her turn to find a loving home. She has went through her treatment . She is doing great!SB posted 9/15/19\n**It is rare that we know with certainty the ages or mixes that make up our wonderful dogs, but we do our best to be as accurate as possible based upon our many years in rescue.\n** Adoption: $325 which covers quarantine, shots, worming, food, medical records, spaying/neutering,microchip and an Alabama State Health Certificate. Transport, if needed : $120.00 We consider the transport to be of great importance and, as such, take particular care of the dogs during the trip from Alabama. We make every effort to arrive with healthy and minimally stressed dogs.
## 10 Meet Reba, a 2-year-old Dachshund with a sleek and short coat of red. She weighs only 15 pounds, and they're all filled with fun! Reba greatly enjoys playing and has a wonderful temperament. She loves running and playing. She loves attention, too! She's wonderful with people and other dogs, too! (posted 9/11/19, ME)\n**It is rare that we know with certainty the ages or mixes that make up our wonderful dogs, but we do our best to be as accurate as possible based upon our many years in rescue.\n** Adoption: $325 which covers quarantine, shots, worming, food, medical records, spaying/neutering,microchip and an Alabama State Health Certificate. Transport, if needed : $120.00 We consider the transport to be of great importance and, as such, take particular care of the dogs during the trip from Alabama. We make every effort to arrive with healthy and minimally stressed dogs.
## found manual remove still_there
## 1 Arkansas <NA> NA NA
## 2 Abacos Bahamas NA NA
## 3 Adam Maryland NA NA
## 4 Adaptil <NA> TRUE NA
## 5 Afghanistan <NA> NA NA
## 6 Afghanistan <NA> NA NA
## 7 Akron Ohio NA NA
## 8 Akron Ohio NA NA
## 9 Alabama <NA> NA NA
## 10 Alabama <NA> NA NA
dog_travel$manual[is.na(dog_travel$manual)] <- dog_travel$found #imputing "found" for NAs in "manual"
dog_travel <- rename(dog_travel, found_state = manual) #from manual to "found_state"
## Error in rename(dog_travel, found_state = manual): unused argument (found_state = manual)
This table also contained a series of unused or incorrect variables that was complicating our analysis. As such, we rmeoved the following variables:
dog_travel <- dog_travel[,-c(4,5,7,8)] #removing unused variables from above
For the dog_moves table, we changed “inUS” to “in_US” for consistency in variable naming
head(dog_moves, 10) #shows first 10 lines
## location exported imported total inUS
## 1 Texas 635 NA 566 TRUE
## 2 Alabama 268 2 1428 TRUE
## 3 North Carolina 158 14 2627 TRUE
## 4 South Carolina 139 12 1618 TRUE
## 5 Georgia 137 19 3479 TRUE
## 6 Puerto Rico 131 NA NA FALSE
## 7 California 130 3 1664 TRUE
## 8 South Korea 76 NA NA FALSE
## 9 Tennessee 66 20 1769 TRUE
## 10 Kentucky 57 4 1123 TRUE
dog_moves <- rename(dog_moves, in_US = inUS) #changed inUS to in_US
## Error in rename(dog_moves, in_US = inUS): unused argument (in_US = inUS)
In our approach, we cleaned our data before linking in order to have the opportunity to use the clean initial tables separately, adding some flexibility. Our analysis involves linking of the dog_descriptions and dog_travel tables though which is done below; however, for our planned analysis it is not necessary to link the dog_moves table to either of them.
head(dog_descriptions)
## id org_id breed_primary breed_secondary
## 1 46042150 NV163 American Staffordshire Terrier Mixed Breed
## 2 46042002 NV163 Pit Bull Terrier Mixed Breed
## 3 46040898 NV99 Shepherd <NA>
## 4 46039877 NV202 German Shepherd Dog <NA>
## 5 46039306 NV184 Dachshund <NA>
## 6 46039304 NV184 Boxer Beagle
## breed_mixed breed_unknown age sex size env_children env_dogs
## 1 TRUE FALSE Senior Male Medium NA NA
## 2 TRUE FALSE Adult Male Large NA NA
## 3 FALSE FALSE Adult Male Large NA NA
## 4 FALSE FALSE Baby Female Large NA NA
## 5 FALSE FALSE Young Male Small TRUE TRUE
## 6 TRUE FALSE Baby Male Medium TRUE TRUE
## env_cats name posted contact_city contact_state contact_zip
## 1 NA HARLEY 2019-09-20 Las Vegas NV 89147
## 2 NA BIGGIE 2019-09-20 Las Vegas NV 89147
## 3 NA Ziggy 2019-09-20 Mesquite NV 89027
## 4 NA Gypsy 2019-09-20 Pahrump NV 89048
## 5 TRUE Theo 2019-09-20 Henderson NV 89052
## 6 TRUE Oliver 2019-09-20 Henderson NV 89052
## contact_country
## 1 US
## 2 US
## 3 US
## 4 US
## 5 US
## 6 US
head(dog_travel)
## id contact_city contact_state manual
## 1 44520267 Anoka MN Arkansas
## 2 44698509 Groveland FL Bahamas
## 3 45983838 Adamstown MD Maryland
## 4 44475904 Saint Cloud MN <NA>
## 5 43877389 Pueblo CO <NA>
## 6 43082511 Manchester CT <NA>
dog_df <- left_join(dog_descriptions, dog_travel, by = ("id")) #joins "dog_descriptions" and "dog_travel"
dogregression_df <- dog_df #creates separate dataset to be used in correlation analysis later on
head(dog_df)
## id org_id breed_primary breed_secondary
## 1 46042150 NV163 American Staffordshire Terrier Mixed Breed
## 2 46042002 NV163 Pit Bull Terrier Mixed Breed
## 3 46040898 NV99 Shepherd <NA>
## 4 46039877 NV202 German Shepherd Dog <NA>
## 5 46039306 NV184 Dachshund <NA>
## 6 46039304 NV184 Boxer Beagle
## breed_mixed breed_unknown age sex size env_children env_dogs
## 1 TRUE FALSE Senior Male Medium NA NA
## 2 TRUE FALSE Adult Male Large NA NA
## 3 FALSE FALSE Adult Male Large NA NA
## 4 FALSE FALSE Baby Female Large NA NA
## 5 FALSE FALSE Young Male Small TRUE TRUE
## 6 TRUE FALSE Baby Male Medium TRUE TRUE
## env_cats name posted contact_city.x contact_state.x contact_zip
## 1 NA HARLEY 2019-09-20 Las Vegas NV 89147
## 2 NA BIGGIE 2019-09-20 Las Vegas NV 89147
## 3 NA Ziggy 2019-09-20 Mesquite NV 89027
## 4 NA Gypsy 2019-09-20 Pahrump NV 89048
## 5 TRUE Theo 2019-09-20 Henderson NV 89052
## 6 TRUE Oliver 2019-09-20 Henderson NV 89052
## contact_country contact_city.y contact_state.y manual
## 1 US <NA> <NA> <NA>
## 2 US <NA> <NA> <NA>
## 3 US <NA> <NA> <NA>
## 4 US <NA> <NA> <NA>
## 5 US <NA> <NA> <NA>
## 6 US <NA> <NA> <NA>
Ultimately, we made the decision to not impute any variables for any of the NAs. For the quantitative data, there were no situations where we thought it made sense in terms of our analysis to do so. For example, we did not think it appropriate to impute a mean for dogs exported out of a state when there very well may have just been no dogs exported from that state. For the qualitative data we debated changing some NAs to Unknown; however, we again did not foresee that being beneficial to our analysis at this point in the process. We do however intend to use the na.omit function when applicable. For example, when analyzing the factors that might contribute to envious of cats, dogs, or children.
We also considered changing True’s and False’s to Yes’s and No’s. This also seemed like an extraneous detail though as we believe True and False convey the same message.
head(dog_df, 150)
## id org_id breed_primary
## 1 46042150 NV163 American Staffordshire Terrier
## 2 46042002 NV163 Pit Bull Terrier
## 3 46040898 NV99 Shepherd
## 4 46039877 NV202 German Shepherd Dog
## 5 46039306 NV184 Dachshund
## 6 46039304 NV184 Boxer
## 7 46039303 NV184 Italian Greyhound
## 8 46039302 NV184 Cattle Dog
## 9 46039301 NV184 Cattle Dog
## 10 46038709 NV184 Cattle Dog
## 11 46038708 NV184 Cattle Dog
## 12 46038703 NV184 Italian Greyhound
## 13 46038700 NV184 Cattle Dog
## 14 46038243 NV155 Border Collie
## 15 46038070 NV26 Pit Bull Terrier
## 16 46038064 NV26 German Shepherd Dog
## 17 46038065 NV26 Schnauzer
## 18 46038067 NV26 Pit Bull Terrier
## 19 46038068 NV26 Boxer
## 20 46038060 NV26 Pit Bull Terrier
## 21 46038062 NV26 Pit Bull Terrier
## 22 46038063 NV26 Pit Bull Terrier
## 23 46038061 NV26 Dachshund
## 24 46037951 NV155 Shepherd
## 25 46037918 NV155 Chihuahua
## 26 46037881 NV187 Cocker Spaniel
## 27 46037860 NV155 Chihuahua
## 28 46037820 NV155 Chihuahua
## 29 46037762 NV155 Chihuahua
## 30 46037742 NV187 Cocker Spaniel
## 31 46037637 NV26 German Shepherd Dog
## 32 46037534 NV187 Pit Bull Terrier
## 33 46036459 NV26 Boxer
## 34 46035351 NV26 Chihuahua
## 35 46035350 NV26 Chihuahua
## 36 46035353 NV26 Dachshund
## 37 46035346 NV26 Chihuahua
## 38 46035344 NV26 Pug
## 39 46035342 NV26 Terrier
## 40 46034532 NV129 Labrador Retriever
## 41 46033962 NV26 German Shepherd Dog
## 42 46032651 NV163 Pit Bull Terrier
## 43 46032592 NV26 Dachshund
## 44 46032594 NV26 Pit Bull Terrier
## 45 46032595 NV26 Pit Bull Terrier
## 46 46032596 NV26 Pit Bull Terrier
## 47 46032588 NV26 Pit Bull Terrier
## 48 46032587 NV26 Pit Bull Terrier
## 49 46032589 NV26 Australian Cattle Dog / Blue Heeler
## 50 46032253 NV163 Poodle
## 51 46031946 AZ189 Terrier
## 52 46031507 AZ189 American Bulldog
## 53 46031797 NV26 Mastiff
## 54 46031796 NV26 Chihuahua
## 55 46029444 NV39 Labrador Retriever
## 56 46029446 NV39 Terrier
## 57 46028152 NV15 Chihuahua
## 58 46027977 NV15 Chihuahua
## 59 46027945 NV15 Chihuahua
## 60 46027921 NV15 Chihuahua
## 61 46027872 NV15 Chihuahua
## 62 46027804 NV186 Husky
## 63 46027303 NV26 Pit Bull Terrier
## 64 46026629 NV155 Poodle
## 65 46026616 NV15 Terrier
## 66 46026600 NV15 Chihuahua
## 67 46026454 NV15 Chihuahua
## 68 46026507 NV26 Chihuahua
## 69 46026395 NV155 Cocker Spaniel
## 70 46026306 NV155 Staffordshire Bull Terrier
## 71 46026195 NV155 Poodle
## 72 46026170 NV68 Chihuahua
## 73 46025014 NV212 Jindo
## 74 46024779 NV212 Corgi
## 75 46024627 NV212 Chihuahua
## 76 46023420 NV26 American Bulldog
## 77 46021809 NV26 German Shepherd Dog
## 78 46021807 NV26 Pit Bull Terrier
## 79 46020352 AZ662 Shar-Pei
## 80 46020343 AZ662 Pit Bull Terrier
## 81 46020326 AZ662 Shar-Pei
## 82 46020312 AZ662 Shepherd
## 83 46020301 AZ662 Shepherd
## 84 46020258 AZ662 Hound
## 85 46020245 AZ662 Jack Russell Terrier
## 86 46020236 AZ662 Retriever
## 87 46020230 AZ662 Hound
## 88 46015991 NV26 Pit Bull Terrier
## 89 46015398 NV26 Pit Bull Terrier
## 90 46015218 NV48 Chihuahua
## 91 46012741 NV26 Chihuahua
## 92 46012739 NV26 Siberian Husky
## 93 46012718 NV187 Pit Bull Terrier
## 94 46010922 NV26 Pit Bull Terrier
## 95 46010921 NV26 American Bulldog
## 96 46010919 NV26 Terrier
## 97 46010918 NV26 Pit Bull Terrier
## 98 46008181 NV26 Pit Bull Terrier
## 99 46007891 NV155 Chihuahua
## 100 46007288 NV39 Pit Bull Terrier
## 101 46005760 NV54 Maltese
## 102 46005576 NV54 German Shepherd Dog
## 103 46005725 NV205 Siberian Husky
## 104 46005633 NV205 Maltese
## 105 46005567 NV205 Maltese
## 106 46005531 NV205 Maltese
## 107 45989641 NV26 Chihuahua
## 108 45988823 NV26 Terrier
## 109 45988816 NV26 Pit Bull Terrier
## 110 45988814 NV26 Chihuahua
## 111 45987766 AZ255 Black Labrador Retriever
## 112 45987322 NV26 Akita
## 113 45985729 NV26 Pit Bull Terrier
## 114 45984048 NV26 Pit Bull Terrier
## 115 45983456 NV26 Pit Bull Terrier
## 116 45982562 NV155 Chihuahua
## 117 45982546 NV155 Terrier
## 118 45982553 NV59 Schnauzer
## 119 45982538 NV155 Pit Bull Terrier
## 120 45981407 NV26 Chihuahua
## 121 45981405 NV26 Chow Chow
## 122 45980158 NV26 Chihuahua
## 123 45980154 NV26 Chihuahua
## 124 45979793 NV26 Akita
## 125 45979787 NV26 Schnauzer
## 126 45979784 NV26 Pit Bull Terrier
## 127 45979783 NV26 Pit Bull Terrier
## 128 45978432 NV202 Redbone Coonhound
## 129 45975578 NV145 Chihuahua
## 130 45975544 NV145 Chihuahua
## 131 45975178 NV26 Chihuahua
## 132 45975175 NV26 Chihuahua
## 133 45973102 NV26 Pit Bull Terrier
## 134 45973113 NV26 Chihuahua
## 135 45973097 NV26 Chihuahua
## 136 45973088 NV26 Chihuahua
## 137 45973081 NV26 Pit Bull Terrier
## 138 45967088 NV15 Chihuahua
## 139 45966541 NV184 Giant Schnauzer
## 140 45966538 NV184 Terrier
## 141 45966526 NV184 Labrador Retriever
## 142 45966461 NV184 Terrier
## 143 45962677 NV26 Mastiff
## 144 45962675 NV26 Pit Bull Terrier
## 145 45961141 AZ189 Labrador Retriever
## 146 45959652 NV202 Redbone Coonhound
## 147 45957822 NV22 Miniature Pinscher
## 148 45956950 AZ189 Boxer
## 149 45956409 NV155 Bichon Frise
## 150 45956384 NV155 Pit Bull Terrier
## breed_secondary breed_mixed breed_unknown age
## 1 Mixed Breed TRUE FALSE Senior
## 2 Mixed Breed TRUE FALSE Adult
## 3 <NA> FALSE FALSE Adult
## 4 <NA> FALSE FALSE Baby
## 5 <NA> FALSE FALSE Young
## 6 Beagle TRUE FALSE Baby
## 7 Chihuahua TRUE FALSE Baby
## 8 <NA> TRUE FALSE Baby
## 9 <NA> TRUE FALSE Baby
## 10 <NA> TRUE FALSE Baby
## 11 Hound TRUE FALSE Baby
## 12 Chihuahua TRUE FALSE Baby
## 13 <NA> TRUE FALSE Baby
## 14 <NA> TRUE FALSE Adult
## 15 <NA> TRUE FALSE Young
## 16 <NA> TRUE FALSE Adult
## 17 Mixed Breed TRUE FALSE Adult
## 18 <NA> TRUE FALSE Adult
## 19 <NA> TRUE FALSE Young
## 20 <NA> TRUE FALSE Young
## 21 <NA> TRUE FALSE Young
## 22 <NA> TRUE FALSE Adult
## 23 Mixed Breed TRUE FALSE Baby
## 24 Border Collie TRUE FALSE Baby
## 25 Border Collie TRUE FALSE Baby
## 26 Beagle TRUE FALSE Senior
## 27 <NA> FALSE FALSE Adult
## 28 <NA> FALSE FALSE Senior
## 29 <NA> FALSE FALSE Senior
## 30 <NA> FALSE FALSE Senior
## 31 Mixed Breed TRUE FALSE Adult
## 32 <NA> TRUE FALSE Senior
## 33 <NA> TRUE FALSE Young
## 34 <NA> TRUE FALSE Adult
## 35 <NA> TRUE FALSE Adult
## 36 Mixed Breed TRUE FALSE Adult
## 37 Mixed Breed TRUE FALSE Young
## 38 Mixed Breed TRUE FALSE Young
## 39 <NA> TRUE FALSE Adult
## 40 Dachshund TRUE FALSE Young
## 41 <NA> TRUE FALSE Adult
## 42 Mixed Breed TRUE FALSE Senior
## 43 Mixed Breed TRUE FALSE Adult
## 44 <NA> TRUE FALSE Adult
## 45 <NA> TRUE FALSE Young
## 46 <NA> TRUE FALSE Adult
## 47 Mixed Breed TRUE FALSE Adult
## 48 <NA> TRUE FALSE Young
## 49 Mixed Breed TRUE FALSE Young
## 50 Terrier TRUE FALSE Adult
## 51 Chihuahua TRUE FALSE Young
## 52 <NA> TRUE FALSE Adult
## 53 <NA> TRUE FALSE Young
## 54 Mixed Breed TRUE FALSE Young
## 55 <NA> FALSE FALSE Young
## 56 <NA> FALSE FALSE Senior
## 57 Pug TRUE FALSE Baby
## 58 Pug TRUE FALSE Baby
## 59 Pug TRUE FALSE Baby
## 60 Pug TRUE FALSE Baby
## 61 <NA> FALSE FALSE Young
## 62 <NA> FALSE FALSE Baby
## 63 <NA> TRUE FALSE Young
## 64 <NA> TRUE FALSE Young
## 65 <NA> TRUE FALSE Baby
## 66 <NA> TRUE FALSE Baby
## 67 <NA> TRUE FALSE Baby
## 68 <NA> TRUE FALSE Adult
## 69 <NA> FALSE FALSE Adult
## 70 <NA> TRUE FALSE Baby
## 71 <NA> FALSE FALSE Senior
## 72 <NA> FALSE FALSE Young
## 73 <NA> FALSE FALSE Baby
## 74 Miniature Pinscher TRUE FALSE Young
## 75 Dachshund TRUE FALSE Senior
## 76 Mixed Breed TRUE FALSE Adult
## 77 Mixed Breed TRUE FALSE Young
## 78 <NA> TRUE FALSE Young
## 79 <NA> TRUE FALSE Adult
## 80 <NA> TRUE FALSE Baby
## 81 <NA> TRUE FALSE Adult
## 82 Pit Bull Terrier TRUE FALSE Young
## 83 <NA> TRUE FALSE Young
## 84 <NA> TRUE FALSE Adult
## 85 <NA> TRUE FALSE Baby
## 86 <NA> TRUE FALSE Adult
## 87 <NA> TRUE FALSE Adult
## 88 <NA> TRUE FALSE Young
## 89 <NA> TRUE FALSE Young
## 90 <NA> TRUE FALSE Young
## 91 Mixed Breed TRUE FALSE Young
## 92 Labrador Retriever TRUE FALSE Young
## 93 <NA> TRUE FALSE Adult
## 94 Mixed Breed TRUE FALSE Young
## 95 Chow Chow TRUE FALSE Adult
## 96 <NA> TRUE FALSE Young
## 97 <NA> TRUE FALSE Young
## 98 <NA> TRUE FALSE Adult
## 99 <NA> FALSE FALSE Baby
## 100 <NA> FALSE FALSE Adult
## 101 <NA> TRUE FALSE Adult
## 102 Golden Retriever TRUE FALSE Adult
## 103 <NA> FALSE FALSE Young
## 104 Poodle TRUE FALSE Baby
## 105 Poodle TRUE FALSE Baby
## 106 Poodle TRUE FALSE Baby
## 107 Mixed Breed TRUE FALSE Adult
## 108 Mixed Breed TRUE FALSE Young
## 109 <NA> TRUE FALSE Adult
## 110 Mixed Breed TRUE FALSE Adult
## 111 Australian Cattle Dog / Blue Heeler TRUE FALSE Baby
## 112 Siberian Husky TRUE FALSE Young
## 113 Mixed Breed TRUE FALSE Adult
## 114 <NA> TRUE FALSE Young
## 115 Mixed Breed TRUE FALSE Adult
## 116 <NA> TRUE FALSE Young
## 117 Chihuahua TRUE FALSE Young
## 118 Terrier TRUE FALSE Baby
## 119 <NA> TRUE FALSE Young
## 120 <NA> TRUE FALSE Adult
## 121 Mixed Breed TRUE FALSE Adult
## 122 <NA> TRUE FALSE Adult
## 123 Mixed Breed TRUE FALSE Adult
## 124 German Shepherd Dog TRUE FALSE Adult
## 125 <NA> TRUE FALSE Adult
## 126 Mixed Breed TRUE FALSE Young
## 127 Mixed Breed TRUE FALSE Adult
## 128 Shepherd TRUE FALSE Adult
## 129 <NA> FALSE FALSE Adult
## 130 <NA> FALSE FALSE Adult
## 131 <NA> TRUE FALSE Adult
## 132 <NA> TRUE FALSE Adult
## 133 <NA> TRUE FALSE Adult
## 134 <NA> TRUE FALSE Adult
## 135 <NA> TRUE FALSE Adult
## 136 <NA> TRUE FALSE Young
## 137 <NA> TRUE FALSE Adult
## 138 <NA> TRUE FALSE Adult
## 139 <NA> FALSE FALSE Adult
## 140 <NA> TRUE FALSE Young
## 141 <NA> FALSE FALSE Young
## 142 Maltese TRUE FALSE Young
## 143 Mixed Breed TRUE FALSE Young
## 144 Mixed Breed TRUE FALSE Young
## 145 <NA> TRUE FALSE Adult
## 146 Shepherd TRUE FALSE Young
## 147 <NA> FALSE FALSE Young
## 148 <NA> TRUE FALSE Young
## 149 <NA> TRUE FALSE Senior
## 150 <NA> FALSE FALSE Adult
## sex size env_children env_dogs env_cats
## 1 Male Medium NA NA NA
## 2 Male Large NA NA NA
## 3 Male Large NA NA NA
## 4 Female Large NA NA NA
## 5 Male Small TRUE TRUE TRUE
## 6 Male Medium TRUE TRUE TRUE
## 7 Female Small TRUE TRUE TRUE
## 8 Male Medium TRUE TRUE TRUE
## 9 Female Medium TRUE TRUE TRUE
## 10 Male Medium TRUE TRUE TRUE
## 11 Female Medium TRUE TRUE TRUE
## 12 Female Small TRUE TRUE TRUE
## 13 Male Medium TRUE TRUE NA
## 14 Female Medium NA TRUE NA
## 15 Female Large NA NA NA
## 16 Male Extra Large NA NA NA
## 17 Male Medium NA NA NA
## 18 Female Large NA NA NA
## 19 Male Large NA NA NA
## 20 Male Medium NA NA NA
## 21 Male Large NA NA NA
## 22 Male Large NA NA NA
## 23 Male Small NA NA NA
## 24 Female Medium NA TRUE NA
## 25 Female Medium NA TRUE NA
## 26 Male Medium TRUE TRUE TRUE
## 27 Female Small NA TRUE NA
## 28 Female Small NA TRUE NA
## 29 Female Small NA TRUE NA
## 30 Male Medium NA NA NA
## 31 Male Large NA NA NA
## 32 Male Large TRUE TRUE TRUE
## 33 Male Large NA NA NA
## 34 Female Small NA NA NA
## 35 Male Small NA NA NA
## 36 Male Small NA NA NA
## 37 Male Small NA NA NA
## 38 Male Medium NA NA NA
## 39 Male Small NA NA NA
## 40 Female Medium FALSE TRUE NA
## 41 Male Large NA NA NA
## 42 Female Medium NA TRUE NA
## 43 Male Small NA NA NA
## 44 Male Large NA NA NA
## 45 Female Large NA NA NA
## 46 Male Large NA NA NA
## 47 Male Large NA NA NA
## 48 Male Large NA NA NA
## 49 Female Medium NA NA NA
## 50 Female Small NA NA NA
## 51 Male Small FALSE NA NA
## 52 Male Large NA NA NA
## 53 Male Large NA NA NA
## 54 Male Small NA NA NA
## 55 Male Medium NA FALSE FALSE
## 56 Male Small FALSE NA NA
## 57 Male Small NA TRUE NA
## 58 Female Small NA TRUE NA
## 59 Male Small NA TRUE NA
## 60 Female Small NA TRUE NA
## 61 Female Small NA TRUE NA
## 62 Female Large FALSE TRUE NA
## 63 Female Medium NA NA NA
## 64 Female Small NA TRUE NA
## 65 Male Small NA TRUE NA
## 66 Female Small NA TRUE NA
## 67 Female Small NA TRUE NA
## 68 Female Small NA NA NA
## 69 Male Medium NA NA NA
## 70 Female Large NA TRUE NA
## 71 Male Small NA TRUE NA
## 72 Male Small FALSE TRUE NA
## 73 Male Medium TRUE TRUE NA
## 74 Female Small TRUE TRUE NA
## 75 Female Small TRUE TRUE NA
## 76 Male Large NA NA NA
## 77 Female Large NA NA NA
## 78 Female Large NA NA NA
## 79 Female Large NA NA NA
## 80 Female Large TRUE TRUE NA
## 81 Female Medium NA FALSE NA
## 82 Male Large NA NA NA
## 83 Female Medium NA NA NA
## 84 Male Medium NA NA NA
## 85 Male Medium TRUE TRUE NA
## 86 Male Medium TRUE TRUE NA
## 87 Female Medium TRUE TRUE NA
## 88 Male Large NA NA NA
## 89 Female Medium NA NA NA
## 90 Female Small TRUE TRUE TRUE
## 91 Male Small NA NA NA
## 92 Male Medium NA NA NA
## 93 Female Large TRUE TRUE NA
## 94 Female Large NA NA NA
## 95 Female Large NA NA NA
## 96 Female Small NA NA NA
## 97 Female Large NA NA NA
## 98 Female Large NA NA NA
## 99 Male Small NA TRUE NA
## 100 Female Medium NA NA NA
## 101 Female Small NA TRUE NA
## 102 Male Large TRUE TRUE NA
## 103 Male Large TRUE TRUE NA
## 104 Female Small TRUE TRUE TRUE
## 105 Male Small TRUE TRUE TRUE
## 106 Female Small TRUE TRUE TRUE
## 107 Female Small NA NA NA
## 108 Male Small NA NA NA
## 109 Female Medium NA NA NA
## 110 Male Small NA NA NA
## 111 Female Large NA TRUE NA
## 112 Female Medium NA NA NA
## 113 Female Medium NA NA NA
## 114 Male Large NA NA NA
## 115 Male Large NA NA NA
## 116 Female Small NA TRUE NA
## 117 Female Small NA TRUE NA
## 118 Female Small TRUE TRUE NA
## 119 Female Medium NA TRUE NA
## 120 Female Small NA NA NA
## 121 Female Medium NA NA NA
## 122 Male Small NA NA NA
## 123 Male Small NA NA NA
## 124 Male Large NA NA NA
## 125 Male Medium NA NA NA
## 126 Male Large NA NA NA
## 127 Male Large NA NA NA
## 128 Male Large NA NA NA
## 129 Female Small NA TRUE NA
## 130 Male Small NA TRUE NA
## 131 Female Small NA NA NA
## 132 Male Small NA NA NA
## 133 Male Large NA NA NA
## 134 Female Small NA NA NA
## 135 Female Small NA NA NA
## 136 Female Small NA NA NA
## 137 Male Large NA NA NA
## 138 Female Small TRUE TRUE NA
## 139 Female Large NA TRUE FALSE
## 140 Male Small TRUE TRUE TRUE
## 141 Female Medium NA TRUE TRUE
## 142 Female Small TRUE TRUE NA
## 143 Male Large NA NA NA
## 144 Male Large NA NA NA
## 145 Male Large NA NA NA
## 146 Male Large NA NA NA
## 147 Male Small TRUE TRUE NA
## 148 Male Large NA NA NA
## 149 Female Small NA TRUE NA
## 150 Male Large NA TRUE NA
## name posted contact_city.x contact_state.x
## 1 HARLEY 2019-09-20 Las Vegas NV
## 2 BIGGIE 2019-09-20 Las Vegas NV
## 3 Ziggy 2019-09-20 Mesquite NV
## 4 Gypsy 2019-09-20 Pahrump NV
## 5 Theo 2019-09-20 Henderson NV
## 6 Oliver 2019-09-20 Henderson NV
## 7 Macadamia 2019-09-20 Henderson NV
## 8 Dodger 2019-09-20 Henderson NV
## 9 Huckleberry 2019-09-20 Henderson NV
## 10 Fagin 2019-09-20 Henderson NV
## 11 Speckles 2019-09-20 Henderson NV
## 12 Cashew 2019-09-20 Henderson NV
## 13 Dash 2019-09-20 Henderson NV
## 14 Sydney 2019-09-20 Las Vegas NV
## 15 HENNA 2019-09-20 Las Vegas NV
## 16 RUBO 2019-09-20 Las Vegas NV
## 17 LEGO 2019-09-20 Las Vegas NV
## 18 MARIE 2019-09-20 Las Vegas NV
## 19 RINGO 2019-09-20 Las Vegas NV
## 20 TONY 2019-09-20 Las Vegas NV
## 21 DUNCAN 2019-09-20 Las Vegas NV
## 22 O'CONNOR 2019-09-20 Las Vegas NV
## 23 CREAM 2019-09-20 Las Vegas NV
## 24 Kimberly aka Freckles 2019-09-20 Las Vegas NV
## 25 Tina 2019-09-20 Las Vegas NV
## 26 Max 2019-09-20 Las Vegas NV
## 27 Flower 2019-09-20 Las Vegas NV
## 28 Sparky 2019-09-20 Las Vegas NV
## 29 Zoey 2019-09-20 Las Vegas NV
## 30 Cabby 2019-09-20 Las Vegas NV
## 31 WOODY MAXUM 2019-09-20 Las Vegas NV
## 32 Butch 2019-09-20 Las Vegas NV
## 33 CROCKETT 2019-09-19 Las Vegas NV
## 34 OLGA 2019-09-19 Las Vegas NV
## 35 SRUFFY 2019-09-19 Las Vegas NV
## 36 TONKA 2019-09-19 Las Vegas NV
## 37 BEAR 2019-09-19 Las Vegas NV
## 38 REUBAN 2019-09-19 Las Vegas NV
## 39 OGIE 2019-09-19 Las Vegas NV
## 40 Bella 2019-09-19 Las Vegas NV
## 41 ALFRED 2019-09-19 Las Vegas NV
## 42 MINNIE 2019-09-19 Las Vegas NV
## 43 JAGGER 2019-09-19 Las Vegas NV
## 44 MARLEY 2019-09-19 Las Vegas NV
## 45 LEXI 2019-09-19 Las Vegas NV
## 46 HASH 2019-09-19 Las Vegas NV
## 47 GORILLA 2019-09-19 Las Vegas NV
## 48 T-BONE 2019-09-19 Las Vegas NV
## 49 KALE 2019-09-19 Las Vegas NV
## 50 SUGAR 2019-09-19 Las Vegas NV
## 51 SCOOTER 2019-09-19 Bullhead City AZ
## 52 SLOTH 2019-09-19 Bullhead City AZ
## 53 ARROW 2019-09-19 Las Vegas NV
## 54 TYLER 2019-09-19 Las Vegas NV
## 55 Bear 2019-09-19 Las Vegas NV
## 56 Mochi 2019-09-19 Las Vegas NV
## 57 Goldie's Gus 2019-09-19 Las Vegas NV
## 58 Goldie's Ginger 2019-09-19 Las Vegas NV
## 59 Goldie's Gilligan 2019-09-19 Las Vegas NV
## 60 Goldie's Gabby 2019-09-19 Las Vegas NV
## 61 Goldie 2019-09-19 Las Vegas NV
## 62 Vail 2019-09-19 Las Vegas NV
## 63 FRECKLES 2019-09-19 Las Vegas NV
## 64 Bella 2019-09-19 Las Vegas NV
## 65 Blackie 2019-09-19 Las Vegas NV
## 66 Sophie 2019-09-19 Las Vegas NV
## 67 Pixie 2019-09-19 Las Vegas NV
## 68 PRINCESS 2019-09-19 Las Vegas NV
## 69 Doc Holiday 2019-09-19 Las Vegas NV
## 70 Lilac 2019-09-19 Las Vegas NV
## 71 Jax 2019-09-19 Las Vegas NV
## 72 Taquito 2019-09-19 Mesquite NV
## 73 Atlas 2019-09-18 Las Vegas NV
## 74 Trixie 2019-09-18 Las Vegas NV
## 75 Lily 2019-09-18 Las Vegas NV
## 76 BENTLEY 2019-09-18 Las Vegas NV
## 77 SHANDY 2019-09-18 Las Vegas NV
## 78 BIANCA 2019-09-18 Las Vegas NV
## 79 Ara 2019-09-18 Kingman AZ
## 80 Sofie 2019-09-18 Kingman AZ
## 81 Lala 2019-09-18 Kingman AZ
## 82 Maximus 2019-09-18 Kingman AZ
## 83 Bobbi 2019-09-18 Kingman AZ
## 84 Marty 2019-09-18 Kingman AZ
## 85 Jackson 2019-09-18 Kingman AZ
## 86 Steve 2019-09-18 Kingman AZ
## 87 Mileena 2019-09-18 Kingman AZ
## 88 EUGENE 2019-09-18 Las Vegas NV
## 89 LAUREN 2019-09-18 Las Vegas NV
## 90 Frost 2019-09-18 Henderson NV
## 91 TIMBO 2019-09-17 Las Vegas NV
## 92 FILEPE 2019-09-17 Las Vegas NV
## 93 Velma 2019-09-17 Las Vegas NV
## 94 RHONDA 2019-09-17 Las Vegas NV
## 95 BELLA 2019-09-17 Las Vegas NV
## 96 PRECIOUS 2019-09-17 Las Vegas NV
## 97 VERONICA 2019-09-17 Las Vegas NV
## 98 GOLDIE 2019-09-17 Las Vegas NV
## 99 Flash 2019-09-17 Las Vegas NV
## 100 Paige 2019-09-17 Las Vegas NV
## 101 Monique 2019-09-17 Las Vegas NV
## 102 Kimo 2019-09-17 Las Vegas NV
## 103 Lobo 2019-09-17 Las Vegas NV
## 104 Lara 2019-09-17 Las Vegas NV
## 105 Tower 2019-09-17 Las Vegas NV
## 106 Bambina 2019-09-17 Las Vegas NV
## 107 DAISY 2019-09-16 Las Vegas NV
## 108 PETER PAN 2019-09-16 Las Vegas NV
## 109 LITTLE LACY 2019-09-16 Las Vegas NV
## 110 PATRICK 2019-09-16 Las Vegas NV
## 111 Puppies 2019-09-16 Golden Valley AZ
## 112 CALI 2019-09-16 Las Vegas NV
## 113 ZELIA 2019-09-16 Las Vegas NV
## 114 LOMAX 2019-09-16 Las Vegas NV
## 115 ROCKY 2019-09-16 Las Vegas NV
## 116 Ella 2019-09-15 Las Vegas NV
## 117 Penny 2019-09-15 Las Vegas NV
## 118 Chocolate 2019-09-15 Las Vegas NV
## 119 Charlette 2019-09-15 Las Vegas NV
## 120 ZACK 2019-09-15 Las Vegas NV
## 121 BETTY 2019-09-15 Las Vegas NV
## 122 FOLLIE 2019-09-15 Las Vegas NV
## 123 SCOUT 2019-09-15 Las Vegas NV
## 124 BANDIT 2019-09-15 Las Vegas NV
## 125 SAMSON 2019-09-15 Las Vegas NV
## 126 DUKE 2019-09-15 Las Vegas NV
## 127 GATSBY 2019-09-15 Las Vegas NV
## 128 Bear 2019-09-15 Pahrump NV
## 129 Tiny 2019-09-14 Las Vegas NV
## 130 Ruffy 2019-09-14 Las Vegas NV
## 131 ROSEBUD 2019-09-14 Las Vegas NV
## 132 PRINCE 2019-09-14 Las Vegas NV
## 133 SPARKY 2019-09-14 Las Vegas NV
## 134 BELLA 2019-09-14 Las Vegas NV
## 135 PRINCESALOLA 2019-09-14 Las Vegas NV
## 136 BRANDY 2019-09-14 Las Vegas NV
## 137 MICHAEL 2019-09-14 Las Vegas NV
## 138 Carmen 2019-09-13 Las Vegas NV
## 139 Ember 2019-09-13 Henderson NV
## 140 Rogue 2019-09-13 Henderson NV
## 141 Barley 2019-09-13 Henderson NV
## 142 Felicity 2019-09-13 Henderson NV
## 143 WILBUR 2019-09-13 Las Vegas NV
## 144 MOCHI 2019-09-13 Las Vegas NV
## 145 KASH 2019-09-13 Bullhead City AZ
## 146 Badger 2019-09-13 Pahrump NV
## 147 Twixx 2019-09-13 Las Vegas NV
## 148 THUNDER 2019-09-13 Bullhead City AZ
## 149 Sasha 2019-09-12 Las Vegas NV
## 150 ScoobyDoo 2019-09-12 Las Vegas NV
## contact_zip contact_country contact_city.y contact_state.y manual
## 1 89147 US <NA> <NA> <NA>
## 2 89147 US <NA> <NA> <NA>
## 3 89027 US <NA> <NA> <NA>
## 4 89048 US <NA> <NA> <NA>
## 5 89052 US <NA> <NA> <NA>
## 6 89052 US <NA> <NA> <NA>
## 7 89052 US <NA> <NA> <NA>
## 8 89052 US <NA> <NA> <NA>
## 9 89052 US <NA> <NA> <NA>
## 10 89052 US <NA> <NA> <NA>
## 11 89052 US <NA> <NA> <NA>
## 12 89052 US <NA> <NA> <NA>
## 13 89052 US <NA> <NA> <NA>
## 14 89103 US <NA> <NA> <NA>
## 15 89101 US <NA> <NA> <NA>
## 16 89101 US <NA> <NA> <NA>
## 17 89101 US <NA> <NA> <NA>
## 18 89101 US <NA> <NA> <NA>
## 19 89101 US <NA> <NA> <NA>
## 20 89101 US <NA> <NA> <NA>
## 21 89101 US <NA> <NA> <NA>
## 22 89101 US <NA> <NA> <NA>
## 23 89101 US <NA> <NA> <NA>
## 24 89103 US <NA> <NA> <NA>
## 25 89103 US <NA> <NA> <NA>
## 26 89103 US <NA> <NA> <NA>
## 27 89103 US <NA> <NA> <NA>
## 28 89103 US <NA> <NA> <NA>
## 29 89103 US <NA> <NA> <NA>
## 30 89103 US <NA> <NA> <NA>
## 31 89101 US <NA> <NA> <NA>
## 32 89103 US <NA> <NA> <NA>
## 33 89101 US <NA> <NA> <NA>
## 34 89101 US <NA> <NA> <NA>
## 35 89101 US <NA> <NA> <NA>
## 36 89101 US <NA> <NA> <NA>
## 37 89101 US <NA> <NA> <NA>
## 38 89101 US <NA> <NA> <NA>
## 39 89101 US <NA> <NA> <NA>
## 40 89101 US <NA> <NA> <NA>
## 41 89101 US <NA> <NA> <NA>
## 42 89147 US <NA> <NA> <NA>
## 43 89101 US <NA> <NA> <NA>
## 44 89101 US <NA> <NA> <NA>
## 45 89101 US <NA> <NA> <NA>
## 46 89101 US <NA> <NA> <NA>
## 47 89101 US <NA> <NA> <NA>
## 48 89101 US <NA> <NA> <NA>
## 49 89101 US <NA> <NA> <NA>
## 50 89147 US <NA> <NA> <NA>
## 51 86442 US <NA> <NA> <NA>
## 52 86442 US <NA> <NA> <NA>
## 53 89101 US <NA> <NA> <NA>
## 54 89101 US <NA> <NA> <NA>
## 55 89118 US <NA> <NA> <NA>
## 56 89118 US <NA> <NA> <NA>
## 57 89136 US <NA> <NA> <NA>
## 58 89136 US <NA> <NA> <NA>
## 59 89136 US <NA> <NA> <NA>
## 60 89136 US <NA> <NA> <NA>
## 61 89136 US <NA> <NA> <NA>
## 62 89104 US <NA> <NA> <NA>
## 63 89101 US <NA> <NA> <NA>
## 64 89103 US <NA> <NA> <NA>
## 65 89136 US <NA> <NA> <NA>
## 66 89136 US <NA> <NA> <NA>
## 67 89136 US <NA> <NA> <NA>
## 68 89101 US <NA> <NA> <NA>
## 69 89103 US <NA> <NA> <NA>
## 70 89103 US <NA> <NA> <NA>
## 71 89103 US <NA> <NA> <NA>
## 72 89024 US <NA> <NA> <NA>
## 73 89129 US <NA> <NA> <NA>
## 74 89129 US <NA> <NA> <NA>
## 75 89129 US <NA> <NA> <NA>
## 76 89101 US <NA> <NA> <NA>
## 77 89101 US <NA> <NA> <NA>
## 78 89101 US <NA> <NA> <NA>
## 79 86401 US <NA> <NA> <NA>
## 80 86401 US <NA> <NA> <NA>
## 81 86401 US <NA> <NA> <NA>
## 82 86401 US <NA> <NA> <NA>
## 83 86401 US <NA> <NA> <NA>
## 84 86401 US <NA> <NA> <NA>
## 85 86401 US <NA> <NA> <NA>
## 86 86401 US <NA> <NA> <NA>
## 87 86401 US <NA> <NA> <NA>
## 88 89101 US <NA> <NA> <NA>
## 89 89101 US <NA> <NA> <NA>
## 90 89009 US <NA> <NA> <NA>
## 91 89101 US <NA> <NA> <NA>
## 92 89101 US <NA> <NA> <NA>
## 93 89103 US <NA> <NA> <NA>
## 94 89101 US <NA> <NA> <NA>
## 95 89101 US <NA> <NA> <NA>
## 96 89101 US <NA> <NA> <NA>
## 97 89101 US <NA> <NA> <NA>
## 98 89101 US <NA> <NA> <NA>
## 99 89103 US <NA> <NA> <NA>
## 100 89118 US <NA> <NA> <NA>
## 101 89146 US <NA> <NA> <NA>
## 102 89146 US <NA> <NA> <NA>
## 103 89103 US <NA> <NA> <NA>
## 104 89103 US <NA> <NA> <NA>
## 105 89103 US <NA> <NA> <NA>
## 106 89103 US <NA> <NA> <NA>
## 107 89101 US <NA> <NA> <NA>
## 108 89101 US <NA> <NA> <NA>
## 109 89101 US <NA> <NA> <NA>
## 110 89101 US <NA> <NA> <NA>
## 111 86413 US <NA> <NA> <NA>
## 112 89101 US <NA> <NA> <NA>
## 113 89101 US <NA> <NA> <NA>
## 114 89101 US <NA> <NA> <NA>
## 115 89101 US <NA> <NA> <NA>
## 116 89103 US <NA> <NA> <NA>
## 117 89103 US <NA> <NA> <NA>
## 118 89123 US <NA> <NA> <NA>
## 119 89103 US <NA> <NA> <NA>
## 120 89101 US <NA> <NA> <NA>
## 121 89101 US <NA> <NA> <NA>
## 122 89101 US <NA> <NA> <NA>
## 123 89101 US <NA> <NA> <NA>
## 124 89101 US <NA> <NA> <NA>
## 125 89101 US <NA> <NA> <NA>
## 126 89101 US <NA> <NA> <NA>
## 127 89101 US <NA> <NA> <NA>
## 128 89048 US <NA> <NA> <NA>
## 129 89135 US <NA> <NA> <NA>
## 130 89135 US <NA> <NA> <NA>
## 131 89101 US <NA> <NA> <NA>
## 132 89101 US <NA> <NA> <NA>
## 133 89101 US <NA> <NA> <NA>
## 134 89101 US <NA> <NA> <NA>
## 135 89101 US <NA> <NA> <NA>
## 136 89101 US <NA> <NA> <NA>
## 137 89101 US <NA> <NA> <NA>
## 138 89136 US <NA> <NA> <NA>
## 139 89052 US <NA> <NA> <NA>
## 140 89052 US <NA> <NA> <NA>
## 141 89052 US <NA> <NA> <NA>
## 142 89052 US <NA> <NA> <NA>
## 143 89101 US <NA> <NA> <NA>
## 144 89101 US <NA> <NA> <NA>
## 145 86442 US <NA> <NA> <NA>
## 146 89048 US <NA> <NA> <NA>
## 147 89113 US <NA> <NA> <NA>
## 148 86442 US <NA> <NA> <NA>
## 149 89103 US <NA> <NA> <NA>
## 150 89103 US <NA> <NA> <NA>
It is worth noting that there are many more observations in the dog_descriptions than there were in the dog_travel table. This means that there are many NAs in the dog_df dataframe for the variables from the dog_travel table (“contact_city”, “contact_state”, “found_state”). We took the same approach to these NAs as mentioned previously.
head(dog_moves, 10)
## location exported imported total inUS
## 1 Texas 635 NA 566 TRUE
## 2 Alabama 268 2 1428 TRUE
## 3 North Carolina 158 14 2627 TRUE
## 4 South Carolina 139 12 1618 TRUE
## 5 Georgia 137 19 3479 TRUE
## 6 Puerto Rico 131 NA NA FALSE
## 7 California 130 3 1664 TRUE
## 8 South Korea 76 NA NA FALSE
## 9 Tennessee 66 20 1769 TRUE
## 10 Kentucky 57 4 1123 TRUE
Focusing on on our two “cleaned” tables, dog_df and dog_moves, we can see some basic analysis below.
For dog_df, we see that there are now 21 variables and 60,259 observations contained in our new dataframe.
dim(dog_df)
## [1] 60259 21
The structure of our data frame can be seen below with 1 numeric, 5 logical, and 15 character variables.
str(dog_df)
## 'data.frame': 60259 obs. of 21 variables:
## $ id : int 46042150 46042002 46040898 46039877 46039306 46039304 46039303 46039302 46039301 46038709 ...
## $ org_id : Factor w/ 3969 levels "AK17","AK58",..: 2347 2347 2386 2361 2355 2355 2355 2355 2355 2355 ...
## $ breed_primary : Factor w/ 216 levels "Affenpinscher",..: 11 158 181 98 72 41 117 54 54 54 ...
## $ breed_secondary: Factor w/ 190 levels "Affenpinscher",..: 121 121 NA NA NA 20 51 NA NA NA ...
## $ breed_mixed : logi TRUE TRUE FALSE FALSE FALSE TRUE ...
## $ breed_unknown : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
## $ age : Factor w/ 4 levels "Adult","Baby",..: 3 1 1 2 4 2 2 2 2 2 ...
## $ sex : Factor w/ 3 levels "Female","Male",..: 2 2 2 1 2 2 1 2 1 2 ...
## $ size : Factor w/ 4 levels "Extra Large",..: 3 2 2 2 4 3 4 3 3 3 ...
## $ env_children : logi NA NA NA NA TRUE TRUE ...
## $ env_dogs : logi NA NA NA NA TRUE TRUE ...
## $ env_cats : logi NA NA NA NA TRUE TRUE ...
## $ name : Factor w/ 22953 levels "--Cowboy","--Mallory",..: 9117 2795 22837 8933 20975 15574 12981 6584 9689 7489 ...
## $ posted : Date, format: "2019-09-20" "2019-09-20" ...
## $ contact_city.x : Factor w/ 2189 levels "Abbeville","Aberdeen",..: 1023 1023 1195 1463 839 839 839 839 839 839 ...
## $ contact_state.x: Factor w/ 75 levels "12220","12477",..: 57 57 57 57 57 57 57 57 57 57 ...
## $ contact_zip : Factor w/ 3483 levels "01002","01020",..: 3268 3268 3248 3249 3250 3250 3250 3250 3250 3250 ...
## $ contact_country: Factor w/ 15 levels "89009","AZ","CA",..: 13 13 13 13 13 13 13 13 13 13 ...
## $ contact_city.y : Factor w/ 635 levels "Abingdon","Ada",..: NA NA NA NA NA NA NA NA NA NA ...
## $ contact_state.y: Factor w/ 45 levels "17325","AL","AR",..: NA NA NA NA NA NA NA NA NA NA ...
## $ manual : Factor w/ 66 levels "Afghanistan",..: NA NA NA NA NA NA NA NA NA NA ...
Focusing on our “env_…” as these are a key part of our proposed analysis, we can see the number of dogs who are envious of children, dogs, and cats below respectively.
summary(dog_df$env_children) #envious of children
## Mode FALSE TRUE NA's
## logical 4558 24364 31337
summary(dog_df$env_dogs) #envious of dogs
## Mode FALSE TRUE NA's
## logical 3623 32498 24138
summary(dog_df$env_cats) #envious of cats
## Mode FALSE TRUE NA's
## logical 7062 12835 40362
Interestingly, dogs being envious of other dogs is the most common issue, followed by children, and then cats lastly.
For the dog_moves table, we can see that there are now 5 variables with 90 observations.
dim(dog_moves)
## [1] 90 5
Of these variables, 1 is character, 3 are numeric, and 1 is logical.
str(dog_moves)
## 'data.frame': 90 obs. of 5 variables:
## $ location: Factor w/ 90 levels "Afghanistan",..: 79 2 57 69 24 64 12 71 78 38 ...
## $ exported: int 635 268 158 139 137 131 130 76 66 57 ...
## $ imported: int NA 2 14 12 19 NA 3 NA 20 4 ...
## $ total : int 566 1428 2627 1618 3479 NA 1664 NA 1769 1123 ...
## $ inUS : logi TRUE TRUE TRUE TRUE TRUE FALSE ...
For the uncovery of of new information in the data, we plan to utilize all three datasets in our analysis. Our examination of dog demographics by state will allow us to summarize variables by state and find distributions of the data. To look at each dog holistically, we plan to join the dog_description
and dog_travel
tables based on the unique identifier for each dog. This will allow us to find the following information for dogs in the state of Ohio:
* Breeds that are most available, based on counts of the breed_primary variable. * Typical age of available dogs, taken from the age variable.
* Distribution of dog size between small, medium, large, and extra large, which we will find in the size variable.
* The percentage of dogs that are mixed breeds or not, taken from the breed_mixed binary variable.
* Which shelters have the highest count of dogs available and would be the most beneficial to visit? This will come from the org_id variable.
* Cities with the most available dogs, from the contact_city variable.
Are the above summary statistics similar for the city of Cincinnati versus the larger sample size of Ohio?
We also plan to analyze how different variables correlate with dogs’ envy of children, dogs, and cats. This will be done by creating a correlation matrix between age, sex, and size and env_children, env_dogs, and env_cats. We will also run a correlation test between each of the variables to find the specific correlation value.
Finally, we will analyze the movement of dogs based on the dog_travel
table. This will involve an analysis to find any trends in movement, analyzing the frequency of certain origins for each state. We will also utilize a map in R to display the density of available dogs in each state with the OpenStreetMap package.
For the initial demographic analysis, plots and tables will be very prevalent in our results. For the count of breed type, age range, mixed breeds, shelter count, and city analysis, we plan to output tables showing the frequency of each response. We will also utilize barplots to visualize the frequency of each. A correlation matrix will be essential for our envy analysis in visualizing the correlation between the desired variables. Additionally, a geo-spatial map plot will be used to show frequency of dogs across the country.
Most of what is needed for our analysis has been covered in this course or in one of the other courses in R that we have already taken. The main learning that we will need to do before completing the project is how to work with geo-spatial data in R to create the desired map. We have never worked with maps in R, so we will need to learn how to properly utilize OpenStreetMap and other required packages to properly display the data how we want it on a map of the US.
The incorporation of linear regression into our analysis will depend on preliminary results of the correlation values when we examine variables’ correlation with envy. If we find that there is strong correlation between any of the variables, that would prompt us to create a regression model to find more information on how envy is typically affected by other variables present.
The first question we aimed to address was which dogs one can expect to find available most often in the state of Ohio. To do this, we created a new dataframe containing all breeds observed as available in the state of OH. From this dataframe, we created an output of the top 10 most available breeds in OH, as well as a histogram to visualize the count of each of these.
#create dataframe of breeds in OH
OH_breeds <- subset(dog_df, contact_state.x == "OH", select = c("id", "contact_state.x", "breed_primary", "breed_secondary", "breed_mixed", "breed_unknown"))
str(OH_breeds) #2695 observations
## 'data.frame': 2695 obs. of 6 variables:
## $ id : int 46040254 46035619 46035600 46035534 46035505 46031474 46031462 46031440 46031407 46031379 ...
## $ contact_state.x: Factor w/ 75 levels "12220","12477",..: 59 59 59 59 59 59 59 59 59 59 ...
## $ breed_primary : Factor w/ 216 levels "Affenpinscher",..: 58 112 165 103 101 158 158 158 158 158 ...
## $ breed_secondary: Factor w/ 190 levels "Affenpinscher",..: NA 159 37 19 NA NA NA NA NA NA ...
## $ breed_mixed : logi FALSE TRUE TRUE TRUE FALSE TRUE ...
## $ breed_unknown : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
#table of top 10
OH_breeds_primary <- table(OH_breeds$breed_primary) # frequency of values in f$c
OH_breeds_primary <- sort(OH_breeds_primary, decreasing = TRUE)[1:10]
OH_breeds_primary
##
## Pit Bull Terrier Labrador Retriever Chihuahua
## 418 218 167
## Mixed Breed Boxer Terrier
## 142 140 123
## Beagle Hound German Shepherd Dog
## 85 85 79
## Shepherd
## 79
#histogram of top 10
par(mar=c(11,4,4,4))
plot(OH_breeds_primary, type="h", las = 2, main = "Top 10 Available Breeds in OH", ylab = "Count")
From these results, we can see that by far, the most populous breed in OH shelters is a Pit Bull Terrier, followed by Labrador Retrievers at almost half that amount.
Next, we looked to compare the statistics of available breeds in the subset of Cincinnati specifically.
## 'data.frame': 282 obs. of 6 variables:
## $ id : int 46041194 46041119 46041076 46035059 46035038 46035032 46031383 46031230 46026322 46026207 ...
## $ contact_city.x : Factor w/ 2189 levels "Abbeville","Aberdeen",..: 356 356 356 356 356 356 356 356 356 356 ...
## $ breed_primary : Factor w/ 216 levels "Affenpinscher",..: 181 111 58 67 111 111 125 125 181 193 ...
## $ breed_secondary: Factor w/ 190 levels "Affenpinscher",..: 139 121 NA 107 159 159 NA NA 96 136 ...
## $ breed_mixed : logi TRUE TRUE FALSE TRUE TRUE TRUE ...
## $ breed_unknown : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
##
## Pit Bull Terrier Labrador Retriever Chihuahua
## 37 26 25
## Hound Beagle Shepherd
## 17 13 12
## German Shepherd Dog Terrier Collie
## 11 8 7
## Australian Shepherd
## 6
These results show that the top 3 breeds for both Ohio and Cincinnati are Pit Bull Terrier, Labrador Retriever, and Chihuahua, respectively. From there, the most populous available breeds differ slightly.
The next question we looked to answer was “What age are most of the dogs I could adopt in OH?” To do this, we created a new dataframe with OH age data and used ggplot
to create a barplot displaying the count of each age category given in the data, including Baby, Young, Adult, and Senior.
#create dataframe with age data for OH
OH_age <- subset(dog_df, contact_state.x == "OH", select = c("id", "contact_state.x", "age"))
age_order = c("Baby", "Young", "Adult", "Senior") #order data by age
OH_age <- transform(OH_age, age = factor(age, levels=age_order))
age_plot <- ggplot(OH_age, aes(age))
age_plot + geom_bar() + labs(title = "OH Available Dogs' Age Frequency", x = "Age", y = "Count") + geom_text(stat = 'count', aes(label = ..count..), vjust = -1)
By far, there was the highest frequency of adult dogs, with 1366 observations, followed by 814 young dogs.
Next, we addressed the same statistic within the subset of Cincinnati:
The distributions look similar, with adult again taking the highest count. Proportionally, there was a slightly higher proportion of young dogs and baby dogs, with a slightly lower proportion of senior dogs.
We then were curious to find out what amount of available dogs in OH are mixed breed versus purebred. We used ggplot
to display the number of purebred versus mixed breed dogs in OH.
ggplot(OH_breeds, aes(breed_mixed)) + geom_bar() + scale_x_discrete("Type", labels = c("Purebred", "Mixed")) + labs(title = "Mixed and Purebred Count in OH", y = "Count", x = "Type") + geom_text(stat = 'count', aes(label = ..count..), vjust = -1)
From this visualization, we can see that there are 1924 mixed dogs, but only 771 purebred, a ratio of 2.5:1 mixed to purebred. The same analysis was run for Cincinnati, showing an even more divided ratio with 226 mixed dogs but only 56 purebred, a ratio of 4:1.
Our next demographic analysis was to address the query of which shelters in OH have the most available dogs and could therefore be the most productive visits if searching for a dog. To do this, we created a dataframe to include data on organizations and observations in OH.
#create dataframe with org data for OH
OH_shelters <- subset(dog_df, contact_state.x == "OH", select = c("id", "contact_state.x", "contact_city.x", "org_id"))
str(OH_shelters) #2695 observations
## 'data.frame': 2695 obs. of 4 variables:
## $ id : int 46040254 46035619 46035600 46035534 46035505 46031474 46031462 46031440 46031407 46031379 ...
## $ contact_state.x: Factor w/ 75 levels "12220","12477",..: 59 59 59 59 59 59 59 59 59 59 ...
## $ contact_city.x : Factor w/ 2189 levels "Abbeville","Aberdeen",..: 800 543 543 543 543 1198 1198 1198 1198 1198 ...
## $ org_id : Factor w/ 3969 levels "AK17","AK58",..: 2820 2881 2881 2881 2881 2775 2775 2775 2775 2775 ...
#table of top 10 shelters
OH_shelters <- table(OH_shelters$org_id)
OH_shelters <- sort(OH_shelters, decreasing = TRUE)[1:10]
OH_shelters
##
## OH651 OH208 OH1062 OH177 OH820 OH974 OH706 OH542 OH95 OH181
## 60 59 58 58 56 50 46 44 43 42
There isn’t one shelter in OH that has a significantly higher number of dogs than others, but we can see that the most populated shelters have somewhere between 40 and 60 dogs.
We then ran the same analysis for Cincinnati, with the following results:
##
## OH820 MD206 OH426 OH1215 OH316 OH1240 OH581 OH383 OH852 OH179
## 56 34 34 28 22 15 12 11 11 10
This showes that there is one major shelter in Cincinnati with 56 dogs, OH820, and others range from 10 to 34.
Finally, we looked to answer the question, “Which cities in OH have the highest count of dogs available for adoption?” We did this by creating a subset of the data that contained all OH observations and their associated cities. Then we sorted and displayed the top ten most frequent cities.
#cities' dog count
OH_cities <- subset(dog_df, contact_state.x == "OH", select = c("id", "contact_state.x", "contact_city.x"))
OH_cities <- table(OH_cities$contact_city.x)
OH_cities <- sort(OH_cities, decreasing = TRUE)[1:10]
OH_cities
##
## Cincinnati Columbus Zanesville Dayton Elyria Ashville
## 282 154 104 86 66 58
## Marietta Mansfield Plain City Norwood
## 58 56 54 50
From these results, it is clear that Cincinnati is the city with the highest count of available dogs at a significantly higher count of 282, followed by Columnbus with 154. Anyone looking to adopt a dog in Cincinnati is in the right place for the highest likelihood of finding what they’re looking for!
Beyond just graphs, we thought that it would be interesting to demonstrate the distribution of dogs in the Petfinder.com database by state. Seen below is the number of dogs in each US state with larger circles, representing more dogs in that state.
## Error in file(file, "rt"): cannot open the connection
## Error in colnames(states)[1] <- "contact_state.x": object 'states' not found
## Error in is.data.frame(y): object 'states' not found
## id org_id breed_primary breed_secondary
## 1 46042150 NV163 American Staffordshire Terrier Mixed Breed
## 2 46042002 NV163 Pit Bull Terrier Mixed Breed
## 3 46040898 NV99 Shepherd <NA>
## 4 46039877 NV202 German Shepherd Dog <NA>
## 5 46039306 NV184 Dachshund <NA>
## 6 46039304 NV184 Boxer Beagle
## breed_mixed breed_unknown age sex size env_children env_dogs
## 1 TRUE FALSE Senior Male Medium NA NA
## 2 TRUE FALSE Adult Male Large NA NA
## 3 FALSE FALSE Adult Male Large NA NA
## 4 FALSE FALSE Baby Female Large NA NA
## 5 FALSE FALSE Young Male Small TRUE TRUE
## 6 TRUE FALSE Baby Male Medium TRUE TRUE
## env_cats name posted contact_city.x contact_state.x contact_zip
## 1 NA HARLEY 2019-09-20 Las Vegas NV 89147
## 2 NA BIGGIE 2019-09-20 Las Vegas NV 89147
## 3 NA Ziggy 2019-09-20 Mesquite NV 89027
## 4 NA Gypsy 2019-09-20 Pahrump NV 89048
## 5 TRUE Theo 2019-09-20 Henderson NV 89052
## 6 TRUE Oliver 2019-09-20 Henderson NV 89052
## contact_country contact_city.y contact_state.y manual n
## 1 US <NA> <NA> <NA> 862
## 2 US <NA> <NA> <NA> 862
## 3 US <NA> <NA> <NA> 862
## 4 US <NA> <NA> <NA> 862
## 5 US <NA> <NA> <NA> 862
## 6 US <NA> <NA> <NA> 862
## Error in FUN(X[[i]], ...): object 'Longitude' not found
Below is an inserted picture of the resulting map. When running the above code, this output is given in the RStudio console with no errors, but the proper output does not show when knitting to HTML.
As seen in the map above, there is a heavy distribution of dogs along the East coast of the US, while some states have little to no dogs. This tells us that for some reason, there are more adoptable dogs there. The East coast does have very dense populations of people and large city centers. This is a plausible reason for why the density of dogs is so great there.
As mentioned in the Proposed EDA section, an item that we wanted to test was if any of the information that is known about the dogs (such as age, sex, and size) influence whether or not the dog is envious of children, dogs, or cats.
These variables stem from the dog_descriptions table primarily, so we used that table for this section of our analysis. The first step was to convert age, sex, size, env_children, env_dogs, and env_cats to binary variables and omit the NAs so that we could use them in our correlation analysis.
library(corrplot)
source("http://www.sthda.com/upload/rquery_cormat.r")
test <- na.omit(dogregression_df[,c(7:11,14:18,20,22)])
rquery.cormat(test)
## Error in cor(x, use = "complete.obs", ...): 'x' must be numeric
Looking at the above correlation matrix and searching for the largest correlations between the “env_” variables and the size, age, and sex binary variables yield some interesting results. The age-Baby indicator seems to have one of the strongest positive correlations for a dog to be envious of children, other dogs, and cats. This logically makes sense as younger dogs want and need more attention. This seems to be a strong predictor variable for whether a dog is envious or not.
Additionally, the age-Adult variable has rather strong negative correlation, meaning adult dogs are less likely to be envious. This again makes sense as dogs typically mellow out as they get older.
Interestingly, small dogs are likely to be envious of other dogs and cats, but not necessarily of children. This could be an indicator that they are nervous or at least more likely to be nervous or uneasy around other animals that are similar size to them.
One last observation is that the strongest correlation between the “env_” variables is amongst themselves. This indicates that if a dog is envious of children, other dogs, or cats, it is likely envious of others as well.
The next step that we took was to try to define the relationship between the variables above with strong correlation - age-Baby, age_Adult, and size-Small - and each of the “env_” variables.
#env_children
model_children<- glm(dogregression_df$`env_children-TRUE` ~ dogregression_df$`age-Baby` + dogregression_df$`age-Adult` + dogregression_df$`size-Small`, family=binomial)
summary(model_children)
##
## Call:
## glm(formula = dogregression_df$`env_children-TRUE` ~ dogregression_df$`age-Baby` +
## dogregression_df$`age-Adult` + dogregression_df$`size-Small`,
## family = binomial)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.7290 0.2211 0.5697 0.5891 0.7297
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.73616 0.19606 8.855 < 2e-16 ***
## dogregression_df$`age-Baby` 1.96325 0.42478 4.622 3.8e-06 ***
## dogregression_df$`age-Adult` -0.07278 0.23781 -0.306 0.7596
## dogregression_df$`size-Small` -0.47595 0.25997 -1.831 0.0671 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 583.99 on 787 degrees of freedom
## Residual deviance: 539.23 on 784 degrees of freedom
## AIC: 547.23
##
## Number of Fisher Scoring iterations: 6
Doing this, we output the above model. We see that all three of the variables selected have a low p-value and we can confirm that there is a relationship between the variables and the env_children.
#env_cats
model_cats<- glm(dogregression_df$`env_cats-TRUE` ~ dogregression_df$`age-Baby` + dogregression_df$`age-Adult` + dogregression_df$`size-Small`, family=binomial)
## Error in model.frame.default(formula = dogregression_df$`env_cats-TRUE` ~ : invalid type (NULL) for variable 'dogregression_df$`env_cats-TRUE`'
summary(model_cats)
## Error in summary(model_cats): object 'model_cats' not found
For this model, we see very similar results to the model_children before it. This is expected as the “env_” variables had strong correlation amongst each other to begin with.
#env_dogs
model_dogs<- glm(dogregression_df$`env_dogs-TRUE` ~ dogregression_df$`age-Baby` + dogregression_df$`age-Adult` + dogregression_df$`size-Small`, family=binomial)
summary(model_dogs)
##
## Call:
## glm(formula = dogregression_df$`env_dogs-TRUE` ~ dogregression_df$`age-Baby` +
## dogregression_df$`age-Adult` + dogregression_df$`size-Small`,
## family = binomial)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.8508 0.1862 0.3688 0.6147 0.6147
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.9723 0.2259 8.730 < 2e-16 ***
## dogregression_df$`age-Baby` 2.0740 0.5507 3.766 0.000166 ***
## dogregression_df$`age-Adult` -0.4019 0.2732 -1.471 0.141225
## dogregression_df$`size-Small` 1.0836 0.4404 2.461 0.013870 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 490.91 on 787 degrees of freedom
## Residual deviance: 443.36 on 784 degrees of freedom
## AIC: 451.36
##
## Number of Fisher Scoring iterations: 6
Again, all of the variables are significant as a result of their p-values.
Some general takeaways which are interesting are that age-Baby had a positive coefficient and age-Adult had a negative coefficient for each model. Based on our correlation matrix, this was expected. Furthermore, size_Small alternated between models, being negative for env_children. Again, this was expected based on our correlation matrix.
The next step to strengthen these models would be to use training and testing dataset to run misclassification tables to evaluate a cut-off point and the strength of the model. In our analysis, we were only focused on the relationship between the variables though. The correlation matrix was strongly represented in the model’s coefficients as mentioned above. Lastly, it helps to provide insight into the mind and working of a dog with: