2016-05-10 32 views
1

に変換するc("October 1, 2014", "June 14, 2014")のような日付文字列のベクトルをR Date形式のベクトルに変換するにはどうすればよいですか?R文字列の日付(例:「2014年10月1日」)を日付形式

私は1つの列が上記の形式の日付文字列であるdata.frameを持っています。

私はあなたの助けに感謝します。

ありがとうございます!

+2

に使用する書式コードを取得するstrptime'。 – cory

答えて

7

試してみてください。

v <- c("October 1, 2014", "June 14, 2014") 
as.Date(v, "%B %d,%Y") 

います:

#[1] "2014-10-01" "2014-06-14" 

それとも

strptime(v, "%B %d,%Y") 

を与える:

#[1] "2014-10-01 EDT" "2014-06-14 EDT" 
をコメントで@coryによってmentionnedを1として

#Unit: seconds 
#  expr  min  lq  mean median  uq  max neval cld 
# as.Date 1.479891 1.480671 1.527838 1.483158 1.489222 1.863777 10 a 
# strptime 2.177625 2.183247 2.237732 2.255282 2.268452 2.272537 10 b 

を、フォーマットコードを取得するために?strptimeを使用します:与え

ベンチマーク

largev <- rep(v, 10e5) 

library(microbenchmark) 
microbenchmark(
    as.Date = as.Date(largev, "%B %d,%Y"), 
    strptime = strptime(largev, "%B %d,%Y"), 
    times = 10 
) 

  • %B現在のロケールでの完全な月名。 (入力時の略称にも一致します)
  • 10進数(01-31)の日。
  • 世紀の年。 ?その元グレゴリオ暦にはゼロではありませんでしたのに対し、ISO 8601注意: `2004(1BCと解釈される)ことが有効であると定義し
+2

また 'strptime(v、%B%d、%Y") ' –

+0

ありがとうございました:)' as.Date'と 'strptime'の間のパフォーマンスの点で違いはありますか? –

関連する問題