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

求助:R无法识别从Google Sheets导入的日期列问题

解决R中Google Sheets导入的OHLC日期列未被识别问题

导入时直接指定列类型(推荐)

如果用googlesheets4包连接Google Sheets,在read_sheet()里通过col_types参数直接指定日期列类型,避免后续转换:

  • 假设你的列顺序是Date, Open, High, Low, Close, Volume,可以按顺序指定类型:
library(googlesheets4)
df <- read_sheet("你的Google Sheets链接/ID", 
                 col_types = c("D", "n", "n", "n", "n", "n"))
  • 要是记不清列顺序,用命名列表精准指定更稳妥:
df <- read_sheet("你的Google Sheets链接/ID",
                 col_types = list(Date = "D",
                                  Open = "n",
                                  High = "n",
                                  Low = "n",
                                  Close = "n",
                                  Volume = "n"))

(注:"D"代表日期类型,"n"代表数值类型)

已导入数据后转换日期列

如果数据已经导入,日期列是字符型,用两种方式转换:

用lubridate自动识别格式(省心)

lubridate能自动匹配常见日期格式,不用手动写格式串:

library(lubridate)
# 针对YYYY-MM-DD格式用ymd(),MM/DD/YYYY用mdy(),DD/MM/YYYY用dmy()
df$Date <- ymd(df$Date)

用基础R的as.Date()(需指定格式)

如果知道日期的具体格式,直接用as.Date():

# 示例:YYYY-MM-DD格式
df$Date <- as.Date(df$Date, format = "%Y-%m-%d")
# 示例:MM/DD/YYYY格式
df$Date <- as.Date(df$Date, format = "%m/%d/%Y")

检查源数据格式

有时候问题出在Google Sheets本身:如果日期列在 Sheets 里被设为文本格式,R肯定识别不了。先在 Sheets 中选中日期列,设置格式为「日期」,再重新导入,大概率能自动识别。

转成时间序列对象(可选)

OHLC数据通常用时间序列对象分析,转换日期后可以转成xts对象:

library(xts)
ohlc_ts <- xts(df[, -1], order.by = df$Date)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:51:14