Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R从多种格式转换为日期_R_As.date - Fatal编程技术网

R从多种格式转换为日期

R从多种格式转换为日期,r,as.date,R,As.date,我需要将多种格式的日期字符串转换为有效日期 e、 g 日期为.Date(日期,格式=c(“%m-%d-%Y”,“%Y%m%d”)) [1] “2017-01-01”NA“2016-12-01”“2016-09-01”NA“2016-11-01” 两个日期显示为NA这几乎就是我为其编写的软件包: R> dates <- c("01-01-2017","02-01-2017","12-01-2016","20160901","20161001", + "201

我需要将多种格式的日期字符串转换为有效日期

e、 g

日期为.Date(日期,格式=c(“%m-%d-%Y”,“%Y%m%d”))
[1] “2017-01-01”NA“2016-12-01”“2016-09-01”NA“2016-11-01”

两个日期显示为NA

这几乎就是我为其编写的软件包:

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> 
R>日期库(随时)
R> anydate(日期)
[1] "2017-01-01" "2017-02-01" "2016-12-01" "2016-09-01" 
[5] "2016-10-01" "2016-11-01"
R>
可靠地分析任何正常的输入,并且没有明确的格式、原点或其他行噪声

这就是说,不在今年开始ISO风格是在寻找潜在的麻烦,因此
02-03-2017
可能是2月3日或3月2日。我遵循北美公约,我也认为有点破碎-但是如此盛行。帮你自己一个忙,尽量将输入限制在ISO日期,至少是ISO订单YYMMDD。

我已经尝试了library(任何时候),但是对于大数据来说都不起作用。 然后,我发现这个序列很有用:

df$Date2 <- format(as.Date(df$Date, format="%m/%d/%Y"), "%d/%m/%y")

df$Date2 <- as.Date(df$Date2,"%d/%m/%y")

df$Date2为了澄清,
anydate()
将mdy优先于dmy?是的。您也可以从中列出。我发现这比as.Date(ifelse(grepl(“-”,dates)、as.Date(dates,format=c(“%m-%d-%Y”)、as.Date(dates,format=c(“%Y%m%d”)、origin=“1970-01-01”)
有什么方法可以简单地更改原点吗?我发现这个函数非常有用,但由于Excel的缘故,在处理整数时需要将原点改为“1899-12-30”。我们使用它作为编译时常数,我想我们可以改变它。有一个全新的测试层,所以有“成本”。编写本地
fromExcel()
helper可能更简单。如果您想继续,请使用一些示例数据打开问题通知单/
df$Date2 <- format(as.Date(df$Date, format="%m/%d/%Y"), "%d/%m/%y")

df$Date2 <- as.Date(df$Date2,"%d/%m/%y")