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

如何在R Studio中从Naver Finance API生成股票数据DataFrame

提取Naver Finance股票数据并生成DataFrame

你当前的代码已获取到原始数据,但返回内容包含大量空行、格式不符合标准JSON,导致无法直接解析成DataFrame。以下是完善后的代码,可直接实现目标:

rm(list = ls(all=T))

library(jsonlite)
library(dplyr)
library(lubridate)

# 目标URL
url <- "https://api.finance.naver.com/siseJson.naver?symbol=005930&requestType=1&startTime=20220312&endTime=20230517&timeframe=day"

# 读取数据并清理空行、制表符
data <- readLines(url, warn = FALSE)
data_clean <- gsub("\t", "", data) %>% Filter(f = function(x) x != "")

# 修正JSON格式:单引号转双引号、移除末尾多余逗号
data_json <- data_clean %>%
  gsub(pattern = "'", replacement = '"', x = .) %>%
  gsub(pattern = ",$", replacement = "", x = .) %>%
  paste(collapse = "") %>%
  # 补充首尾括号,形成标准JSON数组
  paste0("[", ., "]")

# 解析JSON并转换为DataFrame,处理数据类型
df <- fromJSON(data_json) %>%
  as.data.frame() %>%
  # 设置列名
  setNames(c("날짜", "시가", "고가", "저가", "종가", "거래량", "외국인소진율")) %>%
  # 转换日期格式
  mutate(날짜 = ymd(날짜)) %>%
  # 转换数值类型(部分列默认是字符型)
  mutate(across(c(시가, 고가, 저가, 종가, 거래량, 외국인소진율), as.numeric))

# 查看结果
head(df)

关键步骤说明:

  • 清理空行:用Filter移除所有空字符串行,只保留有效数据行
  • 修正JSON格式:Naver返回的是类JSON结构,需要把单引号替换为双引号,移除每行末尾的逗号,再拼接成标准JSON数组格式
  • 数据类型转换:解析后默认部分列是字符型,手动转换为日期和数值类型,方便后续分析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:22:04