如何格式化R中的日期

时间:2018-03-03 16:22:19

标签: r date

我的列中包含此格式的日期:

2013-05-25 14:10:00.00

...但我想把它放在这种格式

25/05/2013 14:10

...所以可以阅读它。

此外,我希望能够计算两列之间的时间。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

如果您将时间列作为班级POSIXtPOSIXct的对象,则只需使用函数format,否则请先转换列。

x <- as.POSIXct("2013-05-25 14:10:00.00", format = "%Y-%m-%d %H:%M:%OS")
y <- format(x, "%d/%m/%Y %H:%M")
y
#[1] "25/05/2013 14:10"

对于两次之间的差异,您可以使用diftime或更多简单的减法运算符。

z <- Sys.time()

difftime(z, x)
#Time difference of 1743.164 days

z - x
#Time difference of 1743.164 days

difftime(z, x, units = "secs")
#Time difference of 150609340 secs

答案 1 :(得分:1)

为什么在将它带入r?

之前需要转换它

举个例子:

> library("lubridate")
> d <- "2013-05-25 14:10:00.00"
> d
[1] "2013-05-25 14:10:00.00"

我只是将它作为R中的字符类型放入变量中。但是,as_datetime()将该格式理解为日期和时间没有问题:

> as_datetime(d)
[1] "2013-05-25 14:10:00 UTC"

如果R在您阅读时认为数据是一个因素,您可能会先尝试将其转换为字符。

> d <- as.factor("2013-05-25 14:10:00.00")
> d
[1] 2013-05-25 14:10:00.00
Levels: 2013-05-25 14:10:00.00

as_datetime似乎理解了因子格式,但如果首先转换为字符,它也理解它。

> as_datetime(d)
[1] "2013-05-25 14:10:00 UTC"
> as_datetime(as.character(d))
[1] "2013-05-25 14:10:00 UTC"

答案 2 :(得分:0)

=TEXT(yourDate,"dd/mm/yyyy HH:mm")

更多信息: