r - R中的字符串替换不正确
问题描述
我需要替换 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
和分别表示 AM 和 PM(显然)a
。p
lubridate
并且base
R 无法将这些日期转换为正确的格式。因此,我转向繁琐的str_replace_all
函数(来自 package 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")
as.character()
我在应用stringr
的功能之前更改了使用的时代类别。
结果是完美的,除了 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
为什么这些特定时间转换不正确?
解决方案
我们可以paste
"m"
在时间的尽头,将其转换为POSIXct
format(as.POSIXct(paste0(df$Time, "m"), format = "%I:%M %p"), "%T")
#[1] "11:00:00" "11:30:00" "23:00:00" "23:30:00"
推荐阅读
- python - Rest API 模式从数据库中检索值并返回
- javascript - 控制台输出序列有时与调用它们的序列不匹配
- django - 尝试从 CURL 发布到我控制的 API 端点时出现 CSRF 令牌错误。我该如何写请求?
- javascript - 与 0 的平等比较不起作用
- html - 如何从最后一个div中删除边框
- javascript - Discord js:将用户移动到不同的语音频道
- php - htaccess 重写规则以接受印地语字符
- google-cloud-platform - Python 中的 Google Cloud Video Intelligence API - 无法对文件夹中的多个视频运行对象跟踪
- graph - 在有向图中使用不相交数据集的母顶点
- amazon-web-services - AWS ALB SSL/TLS 卸载安全性