将R中的日期列(“字符”转换为日期格式)

将R中的日期列(“字符”转换为日期格式),r,dataframe,date,format,character,R,Dataframe,Date,Format,Character,我有一个样本日期列作为大数据集的一部分,下面的日期是多种格式的 我需要将下面提到的转换为日期格式,请帮助我解决问题 22-04-2015 4/8/2015 18-04-2015 5/7/2015 26-05-2015 6/12/2015 24-06-2015 2015年6月23日尝试使用润滑油。函数guess\u formats()允许定义数据的可能格式(如果需要,可以添加其他格式),然后可以使用as.Date()使用先前定义的格式在适当的类中获取日期。代码如下: library(lubrida

我有一个样本日期列作为大数据集的一部分,下面的日期是多种格式的

我需要将下面提到的转换为日期格式,请帮助我解决问题

22-04-2015 4/8/2015 18-04-2015 5/7/2015 26-05-2015 6/12/2015 24-06-2015
2015年6月23日

尝试使用
润滑油
。函数
guess\u formats()
允许定义数据的可能格式(如果需要,可以添加其他格式),然后可以使用
as.Date()
使用先前定义的格式在适当的类中获取日期。代码如下:

library(lubridate)
#Dates
vecdate <- c('22-04-2015', '4/8/2015','18-04-2015','5/7/2015','26-05-2015',
             '6/12/2015','24-06-2015','23-06-2015')
#Formats
formats <- guess_formats(vecdate, c("dmY"))
dates <- as.Date(vecdate, format=formats)

您是否尝试过在任何时候使用R软件包进行日期转换

> library(anytime)
> datemix <- c("22-04-2015", "4/8/2015", "18-04-2015", "5/7/2015")
> anydate(datemix)
[1] NA "2015-04-08" NA "2015-05-07"
>库(任何时候)
>datemix anydate(datemix)
[1] NA“2015-04-08”NA“2015-05-07”
你注意到第一个和第三个角色的日期出现了NA。这是因为当前定义的包anytime不包含此格式“d-m-y”。使用addFormats()命令添加此格式非常容易,如下所示

> addFormats("%d-%m-%Y")
> datemix <- c("22-04-2015", "4/8/2015", "18-04-2015", "5/7/2015")
> anydate(datemix)
[1] "2015-04-22" "2015-04-08" "2015-04-18" "2015-05-07"
添加格式(“%d-%m-%Y”) >datemix anydate(datemix) [1] "2015-04-22" "2015-04-08" "2015-04-18" "2015-05-07" 输出日期转换为YYYY-MM-DD的ISO格式

您可以随时使用getFormats()命令浏览所有格式。这里是指向R CRAN上的anytime的链接

> addFormats("%d-%m-%Y")
> datemix <- c("22-04-2015", "4/8/2015", "18-04-2015", "5/7/2015")
> anydate(datemix)
[1] "2015-04-22" "2015-04-08" "2015-04-18" "2015-05-07"