我有一個包含3列(包括分鐘和小時)的數據框。 我想將這些列(即分鐘和列)轉換爲時間格式。鑑於數據drame
:將數據幀中的小時,分鍾轉換爲時間格式
Score Hour Min
10 10 56
23 17 01
我想獲得:
Score Time
10 10:56:00
23 17:01:00
我有一個包含3列(包括分鐘和小時)的數據框。 我想將這些列(即分鐘和列)轉換爲時間格式。鑑於數據drame
:將數據幀中的小時,分鍾轉換爲時間格式
Score Hour Min
10 10 56
23 17 01
我想獲得:
Score Time
10 10:56:00
23 17:01:00
你可以使用ISOdatetime
的數字在hour
和min
轉換爲POSIXct
對象。但是,POSIXct對象僅在包含年份,月份和日期時才被定義。因此,根據您的需要可以做幾件事情:
ISOdatetime
。 ISOdatetime
返回所謂的POSIXct
對象,該對象是表示時間的R對象。然後在ISOdatetime
中,您只需使用固定值year
,month
和day
。只有當你的數據集沒有跨越多年時,這個課程纔有效。Time
,則可以使用strftime
將POSIXct
輸出轉換爲字符串。通過將format
參數設置爲"%H:%M:00"
。但是,在這種情況下,您也可以使用sprintf
創建新字符列而不轉換爲POSIXct
:sprintf("%s:%s:00", drame$Hour, drame$Min)
。您可以使用膏()功能到兩列的數據合併到一個字符,然後使用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")
下面你會選擇哪一個我的問題的替代品?稍後閱讀此問題的人可能會感興趣。 – 2012-04-11 07:53:26
我使用ISOdatetime,但你需要指定年,月和日期 – jan5 2012-04-11 09:11:22
而你剛給他們任意值,我假設... – 2012-04-11 09:29:48