Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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
使用lubridate在R中解析多种格式的日期_R_Date_Lubridate - Fatal编程技术网

使用lubridate在R中解析多种格式的日期

使用lubridate在R中解析多种格式的日期,r,date,lubridate,R,Date,Lubridate,我有日期为MM/DD/YY HH:MM格式的数据,其他数据为普通的旧MM/DD/YY格式。我想把它们解析成与“2010-12-01 12:12 EST”相同的格式。我应该怎么做呢?我尝试了下面的ifelse语句,它给了我一堆长整数,并告诉我大量数据点无法解析: df_prime$date <- ifelse(!is.na(mdy_hm(df$date)), mdy_hm(df$date), mdy(df$date)) 如果某些格式不正确,很抱歉,但日期列是最重要的 编辑:下面是通过dpu

我有日期为MM/DD/YY HH:MM格式的数据,其他数据为普通的旧MM/DD/YY格式。我想把它们解析成与“2010-12-01 12:12 EST”相同的格式。我应该怎么做呢?我尝试了下面的ifelse语句,它给了我一堆长整数,并告诉我大量数据点无法解析:

df_prime$date <- ifelse(!is.na(mdy_hm(df$date)), mdy_hm(df$date), mdy(df$date))
如果某些格式不正确,很抱歉,但日期列是最重要的

编辑:下面是通过
dput
命令为我的数据帧的一部分编写的一些代码:

structure(list(IEN = c(23613488506, 23613488506, 23613488506, 23613488506, 23613488506, 23613488506), date = c("2/25/14", "2/25/14 11:27", "2/28/14", "3/4/14", "3/10/14 11:30", "3/10/14 12:32")), .Names = c("IEN", "date"), row.names = 1046334:1046339, class = "data.frame") 

您在lubridate包中尝试过函数guess_formats()吗?
一个可复制的例子来构建像您这样的数据框架可能会很有帮助

lubridate包的
mdy_hm
有一个
截断的
参数,允许您提供可能没有所有位的日期。例如:

> mdy_hm(d$date,truncated=2)
[1] "2014-02-25 00:00:00 UTC" "2014-02-25 11:27:00 UTC"
[3] "2014-02-28 00:00:00 UTC" "2014-03-04 00:00:00 UTC"
[5] "2014-03-10 11:30:00 UTC" "2014-03-10 12:32:00 UTC"

那么,您的日期列是字符,并且包含其他格式,而不是您在摘录中显示的格式?你有没有可能用所有格式的示例创建一些东西,并使用
dput
格式?什么是
dput
格式?我将用第二种格式的示例更新我的原始帖子。对不起<代码>请使您的问题重复。两个具有所有可能样式的向量就可以了。容易复制到R中
制作一个只有2列的小数据框(我们不关心大多数其他内容),然后,在
d
是数据框的地方,做
dput(d)
-粘贴它,然后我们可以将它剪切并粘贴到会话中,以准确地重建数据框。@Spacedman请参阅我的原始帖子。再次感谢!我认为这是有效的。谢谢我以前试过,但它不起作用,我怀疑这是因为我把
truncate
作为参数,而不是
truncated.
有没有办法为那些有时间的人保留时间?它是为那些有时间的人保留时间。。。它只是将那些没有设置的时间设置为00:00:00。是的,您需要拼写出
截断的
,因为函数首先有一个
参数,它捕获与确切参数不匹配的任何内容。当函数没有点(或点是最后一个)时,可以缩写参数。这就是R。
> mdy_hm(d$date,truncated=2)
[1] "2014-02-25 00:00:00 UTC" "2014-02-25 11:27:00 UTC"
[3] "2014-02-28 00:00:00 UTC" "2014-03-04 00:00:00 UTC"
[5] "2014-03-10 11:30:00 UTC" "2014-03-10 12:32:00 UTC"