web-dev-qa-db-ja.com

R日付「Origin」を指定する必要があります

私のコード:

axis.Date(1,sites$date, Origin="1960-10-01")

エラー:

Error in as.Date.numeric(x) : 'Origin' must be supplied

上記のコードで提供したときにOriginを要求するのはなぜですか?

42
Nate

私はあなたが意味したと思う:

_axis.Date(1, as.Date(sites$date, Origin = "1960-10-01"))
_

as.Date()の 'x'引数はDate型である必要があります。

余談ですが、これは前の質問のフォローアップまたは編集として適切です。

37

私のRは1970-01-01を使用しています:

>as.Date(15103, Origin="1970-01-01")
[1] "2011-05-09"

これはからの計算と一致します

>as.numeric(as.Date(15103, Origin="1970-01-01"))
18
kennyut

数値に日付と時刻の両方の情報がある場合は、as.POSIXct。 Data.tableパッケージのIDateTime形式はそのような場合です。 fwriteを使用してファイルを保存すると、パッケージはdate-timeをunix timeであるidatetime形式に自動的に変換します。通常の形式に戻すには、次のようにします。

例:日付と時刻の情報を持つUNIXタイムスタンプがあるとします:1442866615

> as.POSIXct(1442866615,Origin="1970-01-01")
[1] "2015-09-21 16:16:54 EDT"
6
ilyas

別のオプションはlubridateパッケージです:

library(lubridate)

x <- 15103
as_date(x, Origin = lubridate::Origin)
"2011-05-09"

y <- 1442866615
as_datetime(y, Origin = lubridate::Origin)
"2015-09-21 20:16:55 UTC"

ドキュメントから:

Originは、1970-01-01 UTCのPOSIXct形式の日時です。この日時は、POSIXct、POSIXlt、chron、およびDateクラスで使用される番号付けシステムのオリジンです。

6
sbha

したがって、一般的にこれは解決されていますが、使用する日付が正しい形式ではないため、このエラーメッセージが表示される場合があります。

私はこれが古い投稿であることを知っています。しかし、これを実行するたびに、日付列の一番下にNAが表示されます。私の日付はこの形式です20150521 – NealC 15年6月5日16:06

この形式の日付がある場合は、次の方法で日付の形式を確認してください。

str(sides$date)

形式が文字でない場合は、変換します。

as.character(sides$date)

As.Dateの場合、Originはもはや必要ありません。これは数値のみに提供されるためです。したがって、次のように使用できます(NealCの形式があると仮定):

as.Date(as.character(sides$date),format="%Y%m%d)

この移行があなたの一部を助けることを願っています。

0
RBeginner