在R中格式化日期,年份中不加零。

问题描述 投票:0回答:1

我在使用函数POSIXct时遇到了问题,当我在我的数据集中应用该函数时,年份前面出现了两个零,就像这样。


datu1$timestamp <- as.POSIXct(datu1$date.sec, origin = "1970-01-01", tz="GMT")
datu1$timestamp <- as.POSIXct(datu1$timestamp, 
                                     format = "%Y-%m-%d %H:%M:%S", tz = 'GMT')

head(datu1)

  ID     date.sec      lon       lat  lon.025   lat.025 lon.5  lat.5  lon.975   lat.975
1 102211.10 -61827840000 -38.6616 -13.59272 -40.5025 -15.25025 -38.7 -13.76 -36.9000 -10.88950
2 102211.10 -61827818400 -38.6647 -13.60312 -40.4000 -15.17025 -38.7 -13.77 -37.0975 -11.03975
3 102211.10 -61827796800 -38.6723 -13.64505 -40.3000 -15.10000 -38.7 -13.79 -37.0000 -11.29950
4 102211.10 -61827775200 -38.6837 -13.68972 -40.2000 -14.98025 -38.7 -13.83 -37.2000 -11.45975
5 102211.10 -61827753600 -38.7030 -13.73054 -40.2000 -14.98100 -38.7 -13.84 -37.3000 -11.62925
6 102211.10 -61827732000 -38.7221 -13.77846 -40.0000 -15.04050 -38.7 -13.88 -37.5000 -11.69950
  bmode bmode.5           timestamp
1 1.556       2 0010-10-03 00:00:00
2 1.565       2 0010-10-03 06:00:00
3 1.571       2 0010-10-03 12:00:00
4 1.571       2 0010-10-03 18:00:00
5 1.589       2 0010-10-04 00:00:00
6 1.599       2 0010-10-04 06:00:00

我怎样才能解决这个问题,得到完整的一年(比如:2010年),而不是两个零?

r date posixct
1个回答
0
投票

也许你的数据是用一种奇怪的 origin (例如 excel使用 "1899-12-30"). 只要适应 origin= 直到日期符合你的要求。

as.POSIXct(-61827840000, origin="1970-01-01", tz="GMT")
# [1] "0010-10-03 GMT"
as.POSIXct(-61827840000, origin="3970-01-01", tz="GMT")
# [1] "2010-10-03 GMT"
© www.soinside.com 2019 - 2024. All rights reserved.