r - 更改数据框中的所有日期格式
问题描述
我对 R 编程非常陌生并且有点卡在这个:我有一个数据框,我想检查任何行/列中是否有任何日期格式的值,应该只删除时间部分。例如,日期字符串"2015-01-02 10:15:44"
应更改为"10:15:44"
我知道,这是一种非常新手的方法,但这是我试图获取所有值的子字符串的方法。
id<-c(1,2,3,4)
time1<-c("2015-01-02 10:15:44","NA","2015-11-12 00:15:44","2015-01-02 12:15:14")
time2<-c("NA", "2015-01-02 10:15:44","NA","2015-11-12 00:15:44")
..
..
timen ....
print(df)
df<-data.frame(id,time1, time2,..., timen)
df[1:4 ,2: ncol(df)] <- substring(df[1:4 ,2: ncol(df)], 12)
print(df)
有人可以建议出路吗?
解决方案
你试过这个包吗lubridate
:
time_cols <- c("time1", "time2")
df[time_cols] <- apply(df[time_cols], 2,
function(col){
format(lubridate::ymd_hms(col), "%H:%M:%S")
})
df
# id time1 time2
# 1 1 10:15:44 <NA>
# 2 2 <NA> 10:15:44
# 3 3 00:15:44 <NA>
# 4 4 12:15:14 00:15:44
推荐阅读
- ios - RealmSwiftPermission' 不由 Realm 管理
- javascript - Bootstrap php按钮单击事件以使用第一个值加载另一个页面
- sql - 小型 VBScript 项目请求协助
- c++ - 使用另一个类的 unique_ptr 设置回调函数
- typescript - 定义类型时的通用约束
- bash - 是否可以使用 shell 命令查找和替换包含单个字符的行?
- android - 为什么我收到错误“恐慌:缺少 'x86' cpu 的仿真器引擎程序。”
- xml - 使用 XSLT 从任何 xml 中提取所有文本节点的 xpath 值
- mongodb - mongodb查询并返回特定集合
- python - 当内核过多或多于一台机器时,Dataflow 无法获取对 BigQuery 表的引用