【发布时间】:2020-06-28 13:11:07
【问题描述】:
我需要替换 R 中尴尬的字符串,特别是格式怪异的时间。数据如下所示:
Date | Time | AmbientTemp
2000-01-01 | 11:00 a | 25
2000-01-01 | 11:30 a | 25.5
2000-01-01 | 11:00 p | 20
2000-01-01 | 11:30 p | 19.5
a 和 p 分别表示 AM 和 PM(显然)。
lubridate 和 base R 无法将这些日期转换为正确的格式。因此,我转向繁琐的 str_replace_all 函数(来自 stringr 包)将我的所有时间转换为一个大型数据帧:>130000 条记录。
示例函数:
uploadDat$Time = str_replace_all(uploadDat$Time,"11:00 a","11:00")
uploadDat$Time = str_replace_all(uploadDat$Time,"11:00 p","23:00")
在应用stringr的功能之前,我使用as.character()更改了时代的班级。
结果是完美的,除了 11 点钟时间(如上)转换如下:
Date | Time | AmbientTemp
2000-01-01 | 101:00 | 25
2000-01-01 | 101:30 | 25.5
2000-01-01 | 113:30 | 20
2000-01-01 | 113:30 | 19.5
为什么这些特定时间转换不正确?
【问题讨论】:
标签: r string time replace stringr