2012-01-17 18 views
6

我從NOAA導入一些數據,並在單獨的列中包含日期和時間。我搜索了一個優雅的方式來在我的R數據框中添加單個日期時間列,但無法執行。我發現了一個關於反轉的堆棧交換問題,但不是這個。有沒有一個簡單的as.Date命令我可以運行?我只是簡單地使用read.table來下載文本文件,並且只導入查找。日期和時間在單獨的列中,轉換爲R中的日期時間

浮標數據是在這裏: http://www.ndbc.noaa.gov/data/realtime2/51202.txt

>yr mo dy hr mn degT m.s m.s.1 m sec sec.1 degT.1 hPa degC degC.1 degC.2 nmi hPa.1 ft 
>2012 1 16 3 55 MM MM MM 1.4 10 7.2 339 MM MM 23.9 MM MM MM MM 
+0

我在輸出中假定2012年是年份,數據行開頭的1只是樣本標識符? – 2012-01-17 15:16:31

+0

謝謝加文,是的,我糾正了它。 – 2012-01-18 14:14:58

回答

10

您可以使用ISOdatetime,這只是一個簡單的包裝,以as.POSIXct。確保將sec參數指定爲零。

Data$timestamp <- with(Data, ISOdatetime(YY,MM,DD,hh,mm,0)) 
5

是的,你想要的日期時間列粘貼在一起,然後脅迫該滿弦的日期時間對象。

dat <- within(dat, datetime <- as.POSIXlt(paste(yr, mo, dy, hr, mn), 
              format = "%Y %m %d %H %M")) 

假設dat是包含浮標數據的對象。這增加了一個新的列,它是一個「POSIXlt」類對象,或者如果您更喜歡其他格式,則可以使用as.POSIXct()

,或者雖已看了看文件,以便可以使用他們的列名:

dat <- within(dat, datetime <- as.POSIXlt(paste(YY, MM, DD, hh, mm), 
              format = "%Y %m %d %H %M")) 
相關問題