2015-07-21 186 views
0

我有一個包含年份(YYYY),朱利安日和時間(HHMM)的單獨列的矩陣。我想附上一個帶有完整公曆日期(「MM/DD/YYYY」)的列向量,以及一個列向量,它將以幾天爲單位給我經過的時間。我將如何去做這件事?
要說清楚,我指的是這些儒略日子:http://landweb.nascom.nasa.gov/browse/calendar.html 感謝您的幫助。如何將朱利安的日日和年轉換爲日期格式並計算R的使用時間

C7 <- read.table(text="Year Day Time  
2015 193 915 
2015 193 930 
2015 195 1400 
2015 195 1415", header=T) 

我想補充這兩列:

Year Day Time  Date  Elapsed Time (Days)  
2015 193 915 07/12/2015  0.00  
2015 193 930 07/12/2015  0.01  
2015 195 1400 07/14/2015  2.20  
2015 195 1415 07/14/2015  2.21  
+3

請創建一個[reproducible example](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。包含一些示例輸入數據並顯示所需的輸出。這樣做更容易。 – MrFlick

+0

感謝您的編輯。無法弄清楚如何格式化以這種方式顯示。正如你所看到的,我對R相當陌生。 – user507

回答

2

首先,我想這些值轉換爲適當的POSIXt日期/時間值。在這裏,我貼在一切爲一個字符串,用一些數學分離出小時和分鐘

pdates <- with(C7, strptime(paste(Year,Day,Time %/% 100, Time %% 100), "%Y %j %H %M")) 

現在我們可以通過向下轉換到日期和使用difftime()得到您想要的列。

format(pdates, "%m/%d/%Y") 
# [1] "07/12/2015" "07/12/2015" "07/14/2015" "07/14/2015" 

round(c(difftime(pdates, min(pdates), units="days")),2) 
# [1] 0.00 0.01 2.20 2.21 
+0

這是我的一個老問題,但是我想知道是否有一種方法可以使用上面建議的代碼,但是在計算經過時間時已經建立了最小日期?我需要使用數據框中尚未包含的最短日期(2014年12月10日中午12:00)。謝謝你的幫助。 – user507

相關問題