简体   繁体   中英

Why do I get address must be a character error when I call this api using R?

library(ZillowR)
library(tidyverse)

#Try
# Sample data
set_zillow_web_service_id("X1-ZWz17seirkzuh7_93aho")

map2_dfr(sample3$Street, sample3$ZipCode,
         ~{GetDeepSearchResults(address = .x,
                                citystatezip = as.character(.y),
                                rentzestimate=FALSE) %>% 
             unlist() %>% 
             enframe()
         }) %>% 
  filter(!str_detect(value, "text"))

Sample Data using data pasta:

tibble::tribble(
  ~AccountId, ~ZipCode, ~Totalestimate, ~ZipHhIncome,                ~Street, ~State, ~xxxxxxxxxxxxPct, ~ZipPctAdvDegree, ~AgeFactorPct,             ~City,
      464641,    43130,             0,        46205,    "2577 Long Bow Ave",   "OH",             0.8,      0.058499952,           0.7,       "Lancaster",
      451304,    44718,             0,        69396,    "4822 Armandale Nw",   "OH",             0.8,      0.171958907,           0.7,          "Canton",
      443925,     8837,             0,        74764,    "348 Grandview Ave",   "NJ",               1,       0.16989858,           0.7,          "Edison",
      464725,     2032,           147,       100658,       "81 Rhoades Ave",   "MA",             1.3,      0.247449819,           0.7,    "East Walpole",
      431671,    89403,        335.86,        55248, "296 Monte Cristo Dr.",   "NV",             0.8,      0.066260613,           0.7,          "Dayton",
      474844,    99703,         61.05,        53031,      "4348 9th Street",   "AK",            1.05,      0.061620898,           0.8, "Fort Wainwright",
      440990,    55429,             0,        43835, "5649 Vera Cruz Ave N",   "MN",               1,      0.050472833,           0.7,         "Crystal"
  )

How do I get my output of the getdeepsearchresults api? I want my query to hit the api and return results for each row of parameters ie address(Street) and zipcode(citystatezip)

One way to get address and citystatezip would be to use map2_df / map2_dfr and pass Street and ZipCode to GetDeepSearchResults and extract only the interested properties.

library(ZillowR)

purrr::map2_df(sample$Street, as.character(sample$ZipCode), ~{
        temp <- GetDeepSearchResults(address = .x,citystatezip = .y)
       tibble(Address = temp$request$address, Zip = temp$request$citystatezip)
})

# A tibble: 7 x 2
#  Address              Zip  
#  <chr>                <chr>
#1 2577 Long Bow Ave    43130
#2 4822 Armandale Nw    44718
#3 348 Grandview Ave    8837 
#4 81 Rhoades Ave       2032 
#5 296 Monte Cristo Dr. 89403
#6 4348 9th Street      99703
#7 5649 Vera Cruz Ave N 55429

Or using base R Map

do.call(rbind, Map(function(x, y) {
   temp <- GetDeepSearchResults(address = x,citystatezip = y)
   c(Address = temp$request$address, Zip = temp$request$citystatezip)
}, sample$Street, as.character(sample$ZipCode)))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM