data.table中的JSON导入在R中不起作用(RStudio)
大家好 我有这段代码,它可以通过使用导入的数据生成一个表来很好地工作:data.table中的JSON导入在R中不起作用(RStudio),r,json,rest,api,R,Json,Rest,Api,大家好 我有这段代码,它可以通过使用导入的数据生成一个表来很好地工作: library(jsonlite) library(data.table) response = fromJSON("https://www.cryptocompare.com/api/data/coinlist") df = data.table::rbindlist(response$Data, fill=TRUE) View(df) 但是,当我试图通过使用这一细分市场得出一枚或多枚硬币的历史价格时: library
library(jsonlite)
library(data.table)
response = fromJSON("https://www.cryptocompare.com/api/data/coinlist")
df = data.table::rbindlist(response$Data, fill=TRUE)
View(df)
但是,当我试图通过使用这一细分市场得出一枚或多枚硬币的历史价格时:
library(jsonlite)
library(data.table)
response = fromJSON("https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=10")
df = data.table::rbindlist(response$Data, fill=TRUE)
View(df)
我收到了以下错误消息:
Error in data.table::rbindlist(response$Data, fill = TRUE) : Item 1
of input is not a data.frame, data.table or list
我真的很困惑,因为从它们生成的结果(通过在浏览器中执行web链接,我得到几乎相同的标题数据
请问我该怎么修
谢谢
亚辛
[编辑]
将代码更改为:
library(jsonlite)
library(data.table)
response = fromJSON("https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=10")
df = data.table(response$Data, fill=TRUE)
View(df)
我得到(一个单元格中的所有数据):
请问如何将价格从1个单元格转换为行
谢谢
Yassine您是否查看了您的数据(
str(response)
)?两个查询的结构一点也不相似。很抱歉,我不明白我应该做什么?我如何才能让表生成第二段的请求数据?您的数据不同。第二个响应
具有响应$data$data
这是一个数据框架(不需要rbindlist
)。如果您希望它类似于第一个API调用(正在工作),那么就出了问题,因为所有列都不匹配,这表明这是一个不同的响应。我不知道您应该怎么做:我不知道数据,也不知道您打算使用它做什么。
response = fromJSON("https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=10")
# or
# response = fromJSON("https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=10")
df = as.data.frame(response$Data)
# result
df
# Aggregated TimeFrom TimeTo Data.time Data.high Data.low Data.open Data.volumefrom Data.volumeto Data.close Data.conversionType Data.conversionSymbol
# 1 FALSE 1584316800 1585180800 1584316800 5364.93 4454.22 5357.02 203116.86 996661883 5045.00 direct
# 2 FALSE 1584316800 1585180800 1584403200 5561.43 4950.90 5045.00 116314.49 618671972 5337.66 direct
# 3 FALSE 1584316800 1585180800 1584489600 5451.02 5024.71 5337.66 109210.96 576456806 5413.06 direct
# 4 FALSE 1584316800 1585180800 1584576000 6418.99 5268.33 5413.06 147007.71 868668217 6184.88 direct
# 5 FALSE 1584316800 1585180800 1584662400 6932.04 5691.69 6184.88 148232.44 947038098 6206.44 direct
# 6 FALSE 1584316800 1585180800 1584748800 6459.65 5876.79 6206.44 67262.29 415771089 6195.43 direct
# 7 FALSE 1584316800 1585180800 1584835200 6415.14 5750.68 6195.43 75451.24 457211402 5828.15 direct
# 8 FALSE 1584316800 1585180800 1584921600 6614.56 5703.64 5828.15 107692.99 667919370 6503.53 direct
# 9 FALSE 1584316800 1585180800 1585008000 6857.49 6406.64 6503.53 105151.69 700444488 6767.18 direct
# 10 FALSE 1584316800 1585180800 1585094400 6980.29 6483.00 6767.18 84721.04 566264216 6694.21 direct
# 11 FALSE 1584316800 1585180800 1585180800 6796.12 6581.48 6694.21 16824.06 112750770 6629.23 direct