4

分と時間を含む 3 つの列を含むデータフレームがあります。これらの列 (つまり、分と列) を時刻形式に変換したいと考えています。のデータが与えられた場合drame:

Score Hour Min
10    10    56
23    17    01

私は取得したい:

Score Time
10    10:56:00
23    17:01:00
4

2 に答える 2

7

との数値をオブジェクトISOdatetimeに変換するために使用できます。ただし、POSIXct オブジェクトは、年、月、日も含まれている場合にのみ定義されます。したがって、ニーズに応じて、いくつかのことを実行できます。hourminPOSIXct

  • たとえば、グラフに正しく出力され、算術演算 (加算、減算) で使用できるリアルタイム オブジェクトが必要な場合は、 を使用する必要がありますISOdatetimeISOdatetimeいわゆるPOSIXctオブジェクトを返します。これは、時間を表す R オブジェクトです。次に、 、、およびISOdatetimeに固定値を使用するだけです。これはもちろん、データセットが複数年にまたがらない場合にのみ機能します。yearmonthday
  • 文字列だけが必要な場合は、 を使用して出力を文字列にTime変換できます。引数を に設定します。ただし、この場合、 : に変換せずに新しい文字列を作成するために使用することもできます。POSIXctstrftimeformat"%H:%M:00"sprintfPOSIXctsprintf("%s:%s:00", drame$Hour, drame$Min)
于 2012-04-10T13:03:13.840 に答える
1

paste()関数を使用して 2 つの列のデータを 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

たまたま別の列に日付がある場合は、paste() を使用して文字形式の日付を作成し、以下を使用して日時を取得します

##strptime(mergedData,"%d/%m/%Y %H:%M:%S")
于 2015-04-16T04:57:53.527 に答える