使用 lubridate 格式化多个日期样式时遇到问题
Trouble formatting multiple date styles with lubridate
我正在格式化包含记录日期的一列。列中有多种日期格式,我需要将它们转换为一种一致的格式。
我尝试使用 lubridate() 和 parse_date_time() 函数。
我还尝试将该列作为一个字符和一个因素
这是日期列的样子(超过 100,000 行)
Date.of.Record
2018-01-01
20180102
2018/01/03
2018-01-04
2018-01-05
20180106
我喜欢将它们格式化为:
Date.of.Record
20180101
20180102
20180103
20180104
20180105
20180106
这是我试过的代码:
library(lubridate)
date <- parse_date_time(bind$Date.of.Record, orders =c(ymd()))
date2 <- as.Date(bind$Date.of.Record, "%yyyy-%mm-%dd")
“日期”的代码根本不起作用,'date2' 的代码生成所有 NA。
我意识到我可以按日期格式将数据子集化为不同的数据集,然后在我正确格式化后合并,但我希望有一种更有效的方法来做到这一点。我对 R 还是个新手,尝试学习处理大型数据集的最佳方法
感谢您的帮助!!!
一个选项是 anydate
来自 anytime
library(anytime)
bind$Date.of.Record <- format(anydate(bind$Date.of.Record), "%Y%m%d")
bind$Date.of.Record
#[1] "20180101" "20180102" "20180103" "20180104" "20180105" "20180106"
如果需要是数字,用as.numeric
换行
orders
将是字符串格式
library(lubridate)
format(parse_date_time(bind$Date.of.Record, orders = "ymd"), "%Y%m%d")
#[1] "20180101" "20180102" "20180103" "20180104" "20180105" "20180106"
数据
bind <- structure(list(Date.of.Record = c("2018-01-01", "20180102", "2018/01/03",
"2018-01-04", "2018-01-05", "20180106")), class = "data.frame",
row.names = c(NA, -6L))
我正在格式化包含记录日期的一列。列中有多种日期格式,我需要将它们转换为一种一致的格式。
我尝试使用 lubridate() 和 parse_date_time() 函数。 我还尝试将该列作为一个字符和一个因素
这是日期列的样子(超过 100,000 行)
Date.of.Record
2018-01-01
20180102
2018/01/03
2018-01-04
2018-01-05
20180106
我喜欢将它们格式化为:
Date.of.Record
20180101
20180102
20180103
20180104
20180105
20180106
这是我试过的代码:
library(lubridate)
date <- parse_date_time(bind$Date.of.Record, orders =c(ymd()))
date2 <- as.Date(bind$Date.of.Record, "%yyyy-%mm-%dd")
“日期”的代码根本不起作用,'date2' 的代码生成所有 NA。
我意识到我可以按日期格式将数据子集化为不同的数据集,然后在我正确格式化后合并,但我希望有一种更有效的方法来做到这一点。我对 R 还是个新手,尝试学习处理大型数据集的最佳方法
感谢您的帮助!!!
一个选项是 anydate
来自 anytime
library(anytime)
bind$Date.of.Record <- format(anydate(bind$Date.of.Record), "%Y%m%d")
bind$Date.of.Record
#[1] "20180101" "20180102" "20180103" "20180104" "20180105" "20180106"
如果需要是数字,用as.numeric
orders
将是字符串格式
library(lubridate)
format(parse_date_time(bind$Date.of.Record, orders = "ymd"), "%Y%m%d")
#[1] "20180101" "20180102" "20180103" "20180104" "20180105" "20180106"
数据
bind <- structure(list(Date.of.Record = c("2018-01-01", "20180102", "2018/01/03",
"2018-01-04", "2018-01-05", "20180106")), class = "data.frame",
row.names = c(NA, -6L))