R从多种格式转换为日期
R Convert to date from multiple formats
我需要将多种格式的日期字符串转换为有效日期。
例如
dates <- c("01-01-2017","02-01-2017","12-01-2016","20160901","20161001", "20161101")
> as.Date(dates, format=c("%m-%d-%Y","%Y%m%d"))
[1] "2017-01-01" NA "2016-12-01" "2016-09-01" NA "2016-11-01"
两个日期显示为 NA
这几乎就是我为 anytime 编写的包:
R> dates <- c("01-01-2017","02-01-2017","12-01-2016","20160901","20161001",
+ "20161101")
R> library(anytime)
R> anydate(dates)
[1] "2017-01-01" "2017-02-01" "2016-12-01" "2016-09-01"
[5] "2016-10-01" "2016-11-01"
R>
可靠地解析任何 sane 输入并且 没有显式格式 或 origin 或其他线路噪音.
也就是说,不以 年份开始 ISO 样式是 自找麻烦,所以 02-03-2017
可能是 2 月 3 日或 3 月 2 日。我正在关注我也认为北美公约有些破旧——但它是如此普遍。帮自己一个忙,尝试将输入限制为 ISO 日期,至少是 ISO 顺序 YYYYMMDD。
我尝试过图书馆(任何时候),但是对于大数据不起作用。
然后,我发现这个序列很有用:
df$Date2 <- format(as.Date(df$Date, format="%m/%d/%Y"), "%d/%m/%y")
df$Date2 <- as.Date(df$Date2,"%d/%m/%y")
我在同一列中对“8/10/2005”和“08/13/05”都有效。
我需要将多种格式的日期字符串转换为有效日期。
例如
dates <- c("01-01-2017","02-01-2017","12-01-2016","20160901","20161001", "20161101")
> as.Date(dates, format=c("%m-%d-%Y","%Y%m%d"))
[1] "2017-01-01" NA "2016-12-01" "2016-09-01" NA "2016-11-01"
两个日期显示为 NA
这几乎就是我为 anytime 编写的包:
R> dates <- c("01-01-2017","02-01-2017","12-01-2016","20160901","20161001",
+ "20161101")
R> library(anytime)
R> anydate(dates)
[1] "2017-01-01" "2017-02-01" "2016-12-01" "2016-09-01"
[5] "2016-10-01" "2016-11-01"
R>
可靠地解析任何 sane 输入并且 没有显式格式 或 origin 或其他线路噪音.
也就是说,不以 年份开始 ISO 样式是 自找麻烦,所以 02-03-2017
可能是 2 月 3 日或 3 月 2 日。我正在关注我也认为北美公约有些破旧——但它是如此普遍。帮自己一个忙,尝试将输入限制为 ISO 日期,至少是 ISO 顺序 YYYYMMDD。
我尝试过图书馆(任何时候),但是对于大数据不起作用。 然后,我发现这个序列很有用:
df$Date2 <- format(as.Date(df$Date, format="%m/%d/%Y"), "%d/%m/%y")
df$Date2 <- as.Date(df$Date2,"%d/%m/%y")
我在同一列中对“8/10/2005”和“08/13/05”都有效。