来自Rstudio中dplyr的“ bind_rows”期间数据层次结构中的名称丢失-获取Okex代码

我尝试使用dplyr库将okex-ticker转换为数据帧,这在其他市场上非常成功。

这是整个代码:

library(dplyr)
library(httr)
GET(
  url = "https://www.okex.com/v2/spot/markets/tickers"
) -> okexRes
x5=content(okexRes)
dfokex <- bind_rows(x5$data)

我认为最后一行的括号中缺少一些内容,例如(x5$data$???),但是在RStudio的环境中,看起来像这样

x5        Large list
 code : int 0
 data :List of 407
 ..$ :List of 24
 .. .. $ brokerId: int 0
 .. .. $ buy: chr "9314.4"
 .. .. $ change: ...

这里第二个列表的名称是什么?有显示名称的功能吗? 在此先感谢:)

hzthzjln 回答:来自Rstudio中dplyr的“ bind_rows”期间数据层次结构中的名称丢失-获取Okex代码

我在这里看到的一个问题是,该API的响应在json键"name"下包含一个空对象。看起来像股票行情中的{[...],"name":{},[...]}
R正在将其转换为空列表-当您尝试将data的条目强制转换为数据框时,将导致错误。

如果您在flatten的每个条目data处添加一个步骤,那么将很容易为您解决问题,这会将列表转换为准备进行行绑定的数据框。

尝试一下:

library(dplyr)
library(purrr)

dfokex <- x5$data %>%
  lapply(flatten_dfr) %>%
  bind_rows()
本文链接:https://www.f2er.com/3164626.html

大家都在问