我的列中包含此格式的日期:
2013-05-25 14:10:00.00
...但我想把它放在这种格式
25/05/2013 14:10
...所以r可以阅读它。
此外,我希望能够计算两列之间的时间。
我该怎么做?
答案 0 :(得分:1)
如果您将时间列作为班级POSIXt
或POSIXct
的对象,则只需使用函数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)