2017-08-01 41 views
0

Rの日付リストの書式設定に問題があります。たとえば、as.Dateやas.POSIXctなどのRの書式設定の従来の方法は機能していないようです。私にエラーを与えるものではありません 非公式日付の書式設定

as.POSIXct(as.character(data$Start_Date), format = "%m%d%Y") 

を使用して 1012015

が、私の日付を返します

"0015-10-12"月は2桁の数字ではないので:

は、私が形式で日付を持っています。

lubridateパッケージはこれで助けることができる、正しい日付形式にこれを変更する方法はありF

+1

最後の4桁は常に年で、最初の2〜4桁は月と日付です(その場合は11月1日または1月11日です) ? – platypus

+0

はい、最後の4桁は常に年で、最初の2〜4桁は月と日付です。データは時系列順ですが、Rがあなたの質問に関してその区別をすることができるかどうかはわかりません。 –

+1

_whatは正しい答えです_ – rawr

答えて

3

:?

lubridate::mdy(1012015) 
[1] "2015-01-01" 

形式はあいまいに見えますが、 OPは2つのヒントを与えた:

    彼は彼自身の試みで format = "%m%d%Y"を使用している
  • 、および
  • は、彼は月が2桁の数字ではないため、問題がある主張は
0

これはR. %08dがする番号を指定するだけでベースを使用していますこの場合は0の塗りつぶしで8文字にフォーマットされます。"01012015"

as.POSIXct(sprintf("%08d", 1012015), format = "%m%d%Y") 
## [1] "2015-01-01 EST" 

あなたが任意の時間/分/秒を持っていないならば、微妙なタイムゾーンエラーの可能性が排除されているので、それは"Date"クラスを使用する傾向が少なくエラーになることに注意してください。

as.Date(sprintf("%08d", 1012015), format = "%m%d%Y") 
## [1] "2015-01-01"