如何在R中将「年.月」格式数据转换为可识别的「年-月」格式日期列
格式转换实现方案
以下分别提供Python(pandas)和R两种主流数据处理环境的实现代码:
Python(pandas)
假设你的原始数据框命名为df:
import pandas as pd # 将数值型Month列转字符串替换分隔符,再转为年月格式的日期类型 df['Date'] = pd.to_datetime(df['Month'].astype(str).str.replace('.', '-', regex=False), format='%Y-%m').dt.to_period('M') # 调整列顺序,删除原Month列 df = df[['Date', 'GSI']]
说明:转换为Period类型后输出会直接显示为1993-01格式,同时支持时间序列相关计算,无需额外处理显示格式。
R语言
用lubridate+zoo+dplyr(最简便方案)
library(dplyr) library(lubridate) library(zoo) df <- df %>% # 转字符串后识别为年月类型 mutate(Date = as.yearmon(as.character(Month), format = "%Y.%m")) %>% # 调整列顺序 select(Date, GSI)
纯base R实现(无需安装额外包)
# 转换为日期类型,默认补当月第一天作为日位,后续格式化输出可只保留年月 df$Date <- as.Date(paste0(as.character(df$Month), "-01"), format = "%Y.%m-%d") # 调整列顺序 df <- df[, c("Date", "GSI")] # 如果需要直接显示为%Y-%m格式,可添加如下格式化步骤: df$Date <- format(df$Date, "%Y-%m")
内容的提问来源于stack exchange,提问作者Jamie_B
相关产品推荐
相关产品推荐

