在R语言中如何拆分并格式化CSV文件的日期时间列
R语言处理时间列拆分与格式转换解决方案
以下提供两种常用实现方式,假设你读取的CSV数据已存储在名为df的数据框中:
方案1:tidyverse套件实现(推荐,兼容性强)
依赖dplyr和lubridate包,属于tidyverse生态,无需手动匹配系统格式差异:
# 加载依赖包 library(dplyr) library(lubridate) # 处理数据 df <- df %>% # 解析原始时间列:自动识别月/日/年格式+12小时制AM/PM标识 mutate(raw_datetime = mdy_hms(Time), # 生成指定格式的日期列 Date = format(raw_datetime, "%m/%d/%Y"), # 生成24小时制时间列 Time = format(raw_datetime, "%H:%M:%S")) %>% # 移除临时列 select(-raw_datetime)
如果你的原始日期是日在前、月在后的格式,将mdy_hms替换为dmy_hms即可。
方案2:base R实现(无需安装额外包)
直接使用R原生函数处理:
# 解析原始时间列为标准时间类型 raw_datetime <- strptime(df$Time, format = "%m/%d/%Y %I:%M:%S %p") # 生成日期列 df$Date <- format(raw_datetime, "%m/%d/%Y") # 生成24小时制时间列 df$Time <- format(raw_datetime, "%H:%M:%S")
格式符说明:
%m=补零月份、%d=补零日期、%Y=4位年份、%I=12小时制小时、%p=AM/PM标识、%H=24小时制小时。如果不需要月份/日期的前导零,Windows系统将%m/%d替换为%#m/%#d,类Unix系统(macOS/Linux)替换为%-m/%-d即可。
内容的提问来源于stack exchange,提问作者Med Yasir
相关产品推荐
相关产品推荐

