4

クライアントから、3月15日の2012年3月15日などの形式の日付のExcelファイルが送られてきました。これを.csvファイルとして保存してから、

camm$Date <- as.Date(camm$Date, "%m/%d/%y")

しかし、これは私に2020年からの価値を与えました!

元のcsvファイルの日付を再フォーマットして、たとえば2013年3月14日になるようにしましたが、再フォーマットできませんでした。

助けていただければ幸いです

4

4 に答える 4

10

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してください。

于 2013-02-25T17:39:42.210 に答える
2

lubridate象形文字を扱いたくない場合は、パッケージを試してみることもできます:)

> library(lubridate)
> parse_date_time('3/15/2012', 'mdy')
 1 parsed with %m/%d/%Y
[1] "2012-03-15 UTC"

PS:もちろん、私は誰にも追加の依存関係を使用することをお勧めしません。この回答は、代替の(そしてすぐに覚えられる)解決策としてここに投稿されました

于 2013-02-25T17:56:19.470 に答える
1

全体像を完成させるために、 C ++ライブラリanytimeを利用する最近導入された(2016-09)パッケージを試すこともできます。Boost

anytime::anytime("3/15/2012")
#[1] "2012-03-15 CET"
于 2017-01-05T18:14:55.267 に答える
1

mdyから使用できますlubridate

lubridate::mdy('3/15/2012')
#[1] "2012-03-15"

またはparse_datereadrと同じ形式を使用しますas.Date

readr::parse_date('3/15/2012', '%m/%d/%Y')
#[1] "2012-03-15"
于 2019-12-26T10:49:56.543 に答える