我在R工作,我需要更改格式
的列9/27/2011 3:33:00 PM
到值格式。在Excel中,我可以使用函数value()
,但我不知道如何在R中执行此操作。
我的数据如下:
9/27/2011 15:33 a 1 5 9
9/27/2011 15:33 v 2 6 2
9/27/2011 15:34 c 3 7 1
答案 0 :(得分:23)
要将字符串转换为R日期格式,请使用as.POSIXct
- 然后您可以使用as.numeric
将其强制转换为数值:
> x <- as.POSIXct("9/27/2011 3:33:00 PM", format="%m/%d/%Y %H:%M:%S %p")
> x
[1] "2011-09-27 03:33:00 BST"
> as.numeric(x)
[1] 1317090780
您获得的值表示自任意日期以来的秒数,通常是1970年1月1日。请注意,这与Excel不同,Excel中的日期存储为自任意日期以来的天数(如果我的记忆很好,那么我将尝试不再使用Excel,这是1/1/1900。)
有关详细信息,请参阅?DateTimeClasses
答案 1 :(得分:3)
这对我有用:
> test=as.POSIXlt("09/13/2006", format="%m/%d/%Y")
> test
[1] "2006-09-13"
> 1900+test$year
[1] 2006
> test$yday
[1] 255
> test$yday/365
[1] 0.6986301
> 1900+test$year+test$yday/366
[1] 2006.697
如果您需要Excel中的日期数字,可以使用类似的方法。