r - 编辑日期格式并使用日期对数据框进行排序
问题描述
我有一个数据框,它有两种不同格式的日期列,所以我想将日期格式编辑为相同,并根据日期和时间对所有数据进行排序。这是导入后文本数据的样子
datetime Info
08.08.2019 23:43:42,356 : PRG_Signal_Ampel
08.08.2019 23:43:50,136 : MAIN
08.08.19 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.19 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.19 23:42:50,184 : data testing
这就是我想要得到的
datetime Info
08.08.2019 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.2019 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.2019 23:42:50,184 : data testing
08.08.2019 23:43:42,356 : PRG_Signal_Ampel
08.08.2019 23:43:50,136 : MAIN
解决方案
编辑:基于 camille 对您上一个问题的很好回答,有代码可以处理导入的文本作为起点:https ://stackoverflow.com/a/57964340/3460670
我会使用使用并且可以处理 2 或 4 位数年份的lubridate
函数(用句点替换逗号):parse_date_time
guess_formats
parse_date_time(gsub(",", ".", datetime), orders = c("dmY HMOS", "dmy HMOS"))
这是它的样子。我添加options(digits.secs=3)
了以秒显示小数位。
import_txt<-
"08.08.2019 23:43:42,356 : PRG_Signal_Ampel
08.08.2019 23:43:50,136 : MAIN
08.08.19 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.19 23:42:50,164 : T_SV_SharedMemRecs.Set
08.08.19 23:42:50,184 : data testing"
library(tidyr)
library(dplyr)
library(lubridate)
options(digits.secs=3)
txt <- readr::read_lines(import_txt)
data.frame(txt) %>%
separate(txt, into = c("datetime", "info"), sep = " : ") %>%
mutate(datetime = parse_date_time(gsub(",", ".", datetime), orders = c("dmY HMOS", "dmy HMOS"))) %>%
arrange(datetime)
datetime info
1 2019-08-08 23:42:50.164 T_SV_SharedMemRecs.Set
2 2019-08-08 23:42:50.164 T_SV_SharedMemRecs.Set
3 2019-08-08 23:42:50.184 data testing
4 2019-08-08 23:43:42.355 PRG_Signal_Ampel
5 2019-08-08 23:43:50.136 MAIN
推荐阅读
- tsql - SQL Server 中的多列数据透视
- android - React Native 应用程序开始出现白屏
- c - 如何使用 clang -emit-llvm 编译和保留“未使用”的 C 声明
- angular - 用角度的图像位置自动替换字符串
- c# - 会话像原始类型一样传递?
- r - 在 R Studio 中绘制一个总和
- python - 如何从 Python 2.7 中的 GZIP 获取特定文件?
- webpack - 如何让 webpack-dev-server 提供文件?
- r - R中的pdffonts中的额外字体
- python - 精确查找的 QuerySet 值必须使用 slicing-Django 限制为一个结果