R语言 将UNIX时间戳转换为R中的日期对象
UNIX时间戳指的是自纪元以来已经过去的秒数。时间戳对象不容易理解,应该转换为其他用户友好的格式。R编程语言中的Date对象可用于以简洁的方式显示指定的时间戳。日期对象被存储为自1970年1月1日以来的天数,其中负数用于早期的日期。在这里我们将看到如何在R编程中把UNIX时间戳转换为日期对象。
方法1:使用lubridate包
R中的Lubridate包负责使日期和时间的工作更容易。它包含专门的解析函数,可以将时间戳处理和修改为各种不同的格式和时区。该包需要使用以下语法安装到R库中。
install.packages("lubridate")
这个包中的as_datetime()方法用于将UNIX时间戳转换为日期对象。该方法默认使用UTC时区。
语法: as_datetime(timestamp, tz)
参数 : tz – 相应的时区
代码
library("lubridate")
timestamp <- 2012368256
datetime <- as_datetime(timestamp)
print ("DateTime Notation")
print (datetime)
输出:
[1] "DateTime Notation"
[1] "2033-10-08 07:10:56 UTC"
方法2:使用as.POSIXct方法
时间戳可以先转换为POSIXct对象,然后再进行转换。POSIXct对象缓解了数学运算的过程,因为它们依赖于秒作为时间管理的主要单位。日期被转换为标准的时区,即UTC。一个时间戳对象可以被转换为POSIXct对象,使用它们作为R中的.POSIXct(date)方法。
as.POSIXct(timestamp, origin = "1970-01-01")
接下来是在POSIXct对象上应用as.Date方法。日期对象被存储为从1970年1月1日开始计算的天数,其中负数被用来指代早期的日期。Date对象直接支持基本的算术,其中整数直接从Date中添加或减去。Date对象还可以指定不同的格式来包含日期。as.Date()方法将一个POSIXct日期对象作为输入,并将其转换为一个Date对象。
as.Date(character date object)
这个方法的不同之处在于,它只是显示日期对象,而上面的方法是将其转换为一个完整的DateTime对象。
代码
# declaring the timestamp
timestamp <- 2012368256
# converting to POSIXct notation
posixt <- as.POSIXct(timestamp,
origin = "1970-01-01")
# converting to readable date
# time object
datetime <- as.Date(posixt)
print ("DateTime Notation")
print (datetime)
输出:
[1] "DateTime Notation"
[1] "2033-10-08"