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

如何在R中将日期时间列拆分为两个新列?

拆分数据框中的日期时间列为日期、时间两列

你之前的代码仅用于打印格式化后的时间输出,并未将结果写入数据框,因此实际数据不会产生变化。以下是两种可行的解决方案:

方法1:基础R实现

假设你的日期时间列名为datetime_col,目标数据框是DF:

# 先将目标列转换为POSIXct格式(若未转换则执行此步骤)
DF$datetime_col <- as.POSIXct(DF$datetime_col)

# 新增日期列,格式为YYYY-MM-DD(可按需调整格式)
DF$date <- format(DF$datetime_col, format = "%Y-%m-%d")

# 新增时间列,格式为HH:MM(可按需改为HH:MM:SS等格式)
DF$time <- format(DF$datetime_col, format = "%H:%M")

方法2:使用lubridate包(更简洁直观)

如果经常处理日期数据,推荐使用lubridate包简化操作:

# 首次使用需安装包
# install.packages("lubridate")
library(lubridate)

# 根据实际日期格式转换为日期时间类型,比如dmy_hms、mdy_hms等
DF$datetime_col <- ymd_hms(DF$datetime_col)

# 拆分日期列
DF$date <- date(DF$datetime_col)

# 拆分时间列,可选择保留时间对象或转为字符串
DF$time <- hms::hms(seconds(DF$datetime_col))
# 若需字符串格式则用:DF$time <- format(DF$datetime_col, "%H:%M")

注意事项

  • 替换datetime_col为你数据框中实际的日期时间列名
  • 格式字符串可根据需求调整,比如%Y/%m/%d、%H:%M:%S等
  • 必须确保目标列先转换为POSIXct类型,否则格式化操作会出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:22:05