クライアントから、3月15日の2012年3月15日などの形式の日付のExcelファイルが送られてきました。これを.csvファイルとして保存してから、
camm$Date <- as.Date(camm$Date, "%m/%d/%y")
しかし、これは私に2020年からの価値を与えました!
元のcsvファイルの日付を再フォーマットして、たとえば2013年3月14日になるようにしましたが、再フォーマットできませんでした。
助けていただければ幸いです
Y
代わりに、as.Date
通話に資本を使用してください。これでうまくいくはずです:
> as.Date("3/15/2012", "%m/%d/%Y")
[1] "2012-03-15"
ヘルプファイルの例から、年が完全に指定されたときに、%Y
それ以外%y
の場合は次のように使用する必要があることがわかります。
> dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
> as.Date(dates, "%m/%d/%y")
[1] "1992-02-27" "1992-02-27" "1992-01-14" "1992-02-28" "1992-02-01"
あなたの例では、年の形式が2012である場合はを使用する必要が%Y
あり、他の例(as.Date
ヘルプファイルから取得)では年の形式が92であるため、使用する%y
のが正しい方法であることがわかります。詳細については、を参照as.Date
してください。
lubridate
象形文字を扱いたくない場合は、パッケージを試してみることもできます:)
> library(lubridate)
> parse_date_time('3/15/2012', 'mdy')
1 parsed with %m/%d/%Y
[1] "2012-03-15 UTC"
PS:もちろん、私は誰にも追加の依存関係を使用することをお勧めしません。この回答は、代替の(そしてすぐに覚えられる)解決策としてここに投稿されました
全体像を完成させるために、 C ++ライブラリanytime
を利用する最近導入された(2016-09)パッケージを試すこともできます。Boost
anytime::anytime("3/15/2012")
#[1] "2012-03-15 CET"
mdy
から使用できますlubridate
lubridate::mdy('3/15/2012')
#[1] "2012-03-15"
またはparse_date
、readr
と同じ形式を使用しますas.Date
readr::parse_date('3/15/2012', '%m/%d/%Y')
#[1] "2012-03-15"