You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中将JSON转换为DataFrame时出现行数量不匹配错误求助

问题解决:Twelve Data API转Data Frame时的行数不匹配错误

修正后的代码

步骤1:获取并解析JSON数据

library(rjson)
# 先解析JSON为R列表,不直接转成data.frame
earnings_json <- rjson::fromJSON(
  file = paste(
    "https://api.twelvedata.com/earnings?symbol=", 
    "AAPL", 
    "&outputsize=1&apikey=", 
    twelve_data_api, 
    sep = ""
  )
)

步骤2:提取核心收益数据

直接提取JSON中的earnings数组部分转成data.frame,这部分是核心业务数据:

earnings_pull <- as.data.frame(earnings_json$earnings)

可选:合并元数据(meta)

如果需要把接口返回的股票基础信息(如代码、交易所)添加到结果中,可将meta转为单一行数据后合并:

# 将meta转为单一行的data.frame
meta_df <- as.data.frame(earnings_json$meta)
# 合并收益数据与元数据
earnings_pull <- cbind(earnings_pull, meta_df)

报错原因

原代码直接将整个JSON解析后的列表转为data.frame,触发错误的核心逻辑:

  • JSON顶级元素结构不统一:meta是单条键值对集合(每个字段对应1个值),earnings是包含单条记录的数组,但其中部分字段(如eps_estimate)为null,rjson会将其转为R中的NULL
  • as.data.frame处理包含NULL的列表时,会将NULL对应的列视为0行,而其他列(如meta中的字段)为1行,导致行数不匹配,抛出arguments imply differing number of rows: 1, 0错误

内容的提问来源于stack exchange,提问作者DougC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 15:46:04