2012-12-02 90 views
2

我有一個數據集,其中日期分爲三列:年,月,日。我想將其轉換爲標準的R日期格式(即自1-1-1970年以來的天數)。現在我有這個:將三列轉換爲unix時間R

date <- as.Date(paste(year,month,day, sep="-")) 

但是我想知道這是否是正確的方法/如果有更有效的方法。

+0

請發佈[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。另外,你是什麼意思的有效? –

+0

我的問題基本上是這樣的,你期望這樣做,或者是否有一個特定的功能/方法。 –

回答

6

as.Date函數表示日期爲數自1月1日,1970年Unix時間是指自1月1日的的數量,1970年你會想使用as.POSIXct功能,然後將其轉換爲數字對象:

as.double(as.Date(paste(year, month, day, sep="-"))) # days since 1970-1-1 
as.double(as.POSIXct(as.Date(paste(year, month, day, sep="-")))) # seconds since 1970-1-1 
+0

謝謝你,我猜Unix時間不是正確的,從1-1-1970工作起只有幾天。 –

2

這幾乎是執行此操作的標準方法。實際上,如果您查看ISOdatetime的代碼,則可以看到它使用了類似的算法。