Какие аргументы следует использовать в функции сброса в этом примере геокодирования? - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь геокодировать местоположения профилей в твиттере по широте и долготе, и намеревался использовать это руководство в качестве ориентира. https://rud.is/books/21-recipes/geocoding-locations-from-profiles-or-elsewhere.html

Как только общая информация пользователя собрана, как именно здесь используется функция сброса? Я запустил их пример кода и получил сообщение об ошибке в отбрасывании (user_info $ location, ==, ""): неиспользованный аргумент ("")

Вслед за ошибкой не было найдено "закодированного" объекта. Какие аргументы отсутствуют, и как бы я достиг последнего шага получения широты / долготы?

#Code from tutorial
library(rtweet)

library(ggmap)

library(tidyverse)

rstats_us <- search_tweets("#rstats", 3000)

user_info <- lookup_users(unique(rstats_us$user_id))

 discard(user_info$location, `==`, "") %>% 
 ggmap::geocode() -> coded

 coded$location <- discard(user_info$location, `==`, "")

user_info <- left_join(user_info, coded, "location")

Ожидаемый результат - я бы назвал тиббл, у меня были бы строка, местоположение и координаты.

Сообщения об ошибках

Error in discard(user_info$location, `==`, "") : unused argument ("")
Error in tbl_vars_dispatch(x) : object 'coded' not found

1 Ответ

0 голосов
/ 09 октября 2019

Вы хотите:

user_info$location %>% discard(. == "")

или

discard(user_info$location, ~.x == "")

discard ищет логический предикат или тест. См. ?discard для получения дополнительной информации.

Редактировать:

Вот простой пример:

library(purrr)
v <- c("New York", "", "San Francisco", "Chicago", "")
discard(v, ~.x == "")
[1] "New York"      "San Francisco" "Chicago"  
...