2012-04-10 72 views
2

我有一個包含3列(包括分鐘和小時)的數據框。 我想將這些列(即分鐘和列)轉換爲時間格式。鑑於數據drame將數據幀中的小時,分​​鍾轉換爲時間格式

Score Hour Min 
10 10 56 
23 17 01 

我想獲得:

Score Time 
10 10:56:00 
23 17:01:00 
+0

下面你會選擇哪一個我的問題的替代品?稍後閱讀此問題的人可能會感興趣。 – 2012-04-11 07:53:26

+0

我使用ISOdatetime,但你需要指定年,月和日期 – jan5 2012-04-11 09:11:22

+0

而你剛給他們任意值,我假設... – 2012-04-11 09:29:48

回答

6

你可以使用ISOdatetime的數字在hourmin轉換爲POSIXct對象。但是,POSIXct對象僅在包含年份,月份和日期時才被定義。因此,根據您的需要可以做幾件事情:

  • 如果你需要的是正確地打印在圖表例如,可以在算術(加法,減法)使用實時對象,你需要使用ISOdatetimeISOdatetime返回所謂的POSIXct對象,該對象是表示時間的R對象。然後在ISOdatetime中,您只需使用固定值yearmonthday。只有當你的數據集沒有跨越多年時,這個課程纔有效。
  • 如果您只需要一個字符列Time,則可以使用strftimePOSIXct輸出轉換爲字符串。通過將format參數設置爲"%H:%M:00"。但是,在這種情況下,您也可以使用sprintf創建新字符列而不轉換爲POSIXctsprintf("%s:%s:00", drame$Hour, drame$Min)
1

您可以使用膏()功能到兩列的數據合併到一個字符,然後使用strptime()轉換時間戳

x<-1:6 
##1 2 3 4 5 6 
y<-8:13 
## 8 9 10 11 12 13 

timestamp <- paste(x,":",y,":00",sep="") 
timestamp 

將導致

#1:8:00 2:9:00 3:10:00 4:11:00 5:12:00 6:13:00 

如果您希望將其轉換爲時間戳對象,請嘗試使用

strptime(mergedData,"%H:%M:%S") 
## uses current date by default 

如果你碰巧有另一列使用膏體()日期作出一個char formattted日期和使用下面獲取日期時間

##strptime(mergedData,"%d/%m/%Y %H:%M:%S") 
相關問題