求助: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
相关产品推荐
相关产品推荐

