2012-01-17 4 views
6

NOAAから一部のデータをインポートしていますが、日付と時刻が別々の列にあります。 Rデータフレームに単一のdatetime列を追加するエレガントな方法を検索しましたが、それは不可能でした。私はその逆についてはスタック交換の質問を見つけたが、これはそうではない。実行可能な単純なas.Dateコマンドはありますか?私は単にダウンロードされたテキストファイルのためにread.tableを使用しています。それはちょうどfindをインポートします。日付と時刻を別々の列に入れて、RTCでdatetimeに変換する

ブイのデータはここにある: http://www.ndbc.noaa.gov/data/realtime2/51202.txt

>yr mo dy hr mn degT m.s m.s.1 m sec sec.1 degT.1 hPa degC degC.1 degC.2 nmi hPa.1 ft 
>2012 1 16 3 55 MM MM MM 1.4 10 7.2 339 MM MM 23.9 MM MM MM MM 
+0

出力では、2012年が年で、データ行の先頭の1はサンプル識別子にすぎませんか? –

+0

ありがとうございましたGavin、はい私はそれを修正しました。 –

答えて

10

あなたはas.POSIXctへの単純なラッパーである、ISOdatetimeを使用することができます。 sec引数をゼロとして指定してください。

Data$timestamp <- with(Data, ISOdatetime(YY,MM,DD,hh,mm,0)) 
5

うん、あなたは一緒に日付時刻の列を貼り付けた後、日付時刻オブジェクトにその完全な文字列を強制します。 datを想定

dat <- within(dat, datetime <- as.POSIXlt(paste(yr, mo, dy, hr, mn), 
              format = "%Y %m %d %H %M")) 

は、ブイのデータを含むオブジェクトです。これにより、 "POSIXlt"クラスオブジェクトである新しい列が追加されます。または、他の形式を使用する場合はas.POSIXct()を使用できます。

または、そのファイルを見た彼らの列名を使用することができます。

dat <- within(dat, datetime <- as.POSIXlt(paste(YY, MM, DD, hh, mm), 
              format = "%Y %m %d %H %M")) 
関連する問題