如何更改同一列中的多种日期格式? [英] How to change multiple Date formats in same column?
本文介绍了如何更改同一列中的多种日期格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
到目前为止,我得到的是一个数据框列,其中包含不同字符格式的日期.一些出现在 %d.%m.%Y
模式中,一些出现在 %m/%d/%Y
中:
What I've got so far is a dataframe column with dates in different character formats. A few appear in the %d.%m.%Y
pattern, some in %m/%d/%Y
:
data$initialDiagnose = as.character(data$initialDiagnose)
data$initialDiagnose[1:10]
[1] "14.01.2009" "9/22/2005" "4/21/2010" "28.01.2010" "09.01.2009" "3/28/2005" "04.01.2005" "04.01.2005" "9/17/2010" "03.01.2010"
我希望它们是一种格式的 Date(),但 R 拒绝了.
所以我首先尝试通过分隔符来改变它们:
I want them as Date() in one format, but R refuses of course.
So I tried at first to change them by the separator:
data$initialDiagnose[grep('/', data$initialDiagnose)] = as.character.Date(data$initialDiagnose[grep('/', data$initialDiagnose)], format = '%m/%d/%Y')
模拟."日期.但是没有用.
Analog to the '.' dates. But it didn't work.
如何将它们全部更改为一种格式,以便我可以使用它们?
How can I change them all to one format, that I can work with them?
推荐答案
我喜欢 lubridate,因为它易于使用:
I like lubridate for its ease of use:
library(lubridate)
# note added ugly formats below
data <- data.frame(initialDiagnose = c("14.01.2009", "9/22/2005",
"4/21/2010", "28.01.2010", "09.01.2009", "3/28/2005",
"04.01.2005", "04.01.2005", "Created on 9/17/2010", "03 01 2010"))
mdy <- mdy(data$initialDiagnose)
dmy <- dmy(data$initialDiagnose)
mdy[is.na(mdy)] <- dmy[is.na(mdy)] # some dates are ambiguous, here we give
data$initialDiagnose <- mdy # mdy precedence over dmy
data
# initialDiagnose
# 2009-01-14
# 2005-09-22
# 2010-04-21
# 2010-01-28
# 2009-09-01
# 2005-03-28
# 2005-04-01
# 2005-04-01
# 2010-09-17
# 2010-03-01
这篇关于如何更改同一列中的多种日期格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文