数字型日期转yyyy-mm-dd格式及R数据框time列转换方法
日期格式转换解决方案
1. 单个数字转换为日期格式
要将数字20201223转换为标准日期格式,只需先将其转为字符型,再用as.Date()函数匹配对应的数字格式即可:
num_date <- 20201223 formatted_date <- as.Date(as.character(num_date), format = "%Y%m%d") formatted_date # 输出结果:"2020-12-23"
2. 数据框中time列的日期转换
针对你提供的R数据框,以下两种方法都能快速将time列转换为yyyy-mm-dd格式:
方法一:Base R 原生实现
直接修改数据框的time列:
# 构造数据框 df <- structure(list(geo = c("Alemanya", "Zona Euro", "Espanya", "Unió Europea", "França", "Itàlia"), time = c(20230201, 20230201, 20230201, 20230201, 20230201, 20230201), values = c(0.5, 2, -0.9, 2.1, 1.2, -2.3)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame")) # 转换time列格式 df$time <- as.Date(as.character(df$time), format = "%Y%m%d")
方法二:tidyverse(dplyr)管道式实现
如果常用tidyverse工具链,用mutate()可以更简洁地完成转换:
library(dplyr) df <- df %>% mutate(time = as.Date(as.character(time), format = "%Y%m%d"))
转换完成后,查看time列会得到标准的日期格式:
df$time # 输出结果: # [1] "2023-02-01" "2023-02-01" "2023-02-01" "2023-02-01" "2023-02-01" "2023-02-01"
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

