R 从日期和小时格式更改为数字格式

R 从日期和小时格式更改为数字格式,r,date,time,R,Date,Time,我在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 要将字符串转换为R日期格式,请使用as.POSIXct-然后可以使用as.numeric将其强制转换为数值: > x &l

我在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

要将字符串转换为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
>x
[1] “2011-09-27 03:33:00英国夏令时”
>as.数字(x)
[1] 1317090780
获取的值表示自任意日期(通常为1970年1月1日)起的秒数。请注意,这与Excel不同,Excel将日期存储为自任意日期(1900年1月1日,如果我记性好的话-我尝试不再使用Excel)起的天数


有关更多信息,请参见
?DateTimeClasses

这对我很有用:

> 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中的日数,可以使用类似的方法。

要获得完整的答案,请向我们提供
dput(yourData)
的输出,以便我们可以准确地重新创建数据对象。给出的答案将因列类型而异,因为它当前可能是一个因子或字符。如果它实际上已经是一个日期或POSIX列,我认为像
as.numeric()
这样的东西应该可以工作。例如:>
as.numeric(Sys.time())[1]1321895128