This produces a 1 column data.frame:
library(tidyverse)
library(jsonlite)
library(purrr)
symbols <- 'https://api.exchangerate.host/symbols' %>% fromJSON %>% .$symbols
symbols %>%
{
data.frame(code = map_chr(., ~ .x$code ) %>% unname)
}
# 1 column data.frame:
# code
# 1 AED
# 2 AFN
# 3 ALL
# 4 AMD
Yet this errors
symbols %>%
{
data.frame(code = . %>% map_chr(~ .x$code ) %>% unname)
}
# Error in as.data.frame.default(x[[i]], optional = TRUE) :
# cannot coerce class ‘c("fseq", "function")’ to a data.frame
Why does piping to purrr::map_chr() error, and how can we get it to work?