私のコード:
axis.Date(1,sites$date, Origin="1960-10-01")
エラー:
Error in as.Date.numeric(x) : 'Origin' must be supplied
上記のコードで提供したときにOriginを要求するのはなぜですか?
私はあなたが意味したと思う:
_axis.Date(1, as.Date(sites$date, Origin = "1960-10-01"))
_
as.Date()
の 'x'引数はDate
型である必要があります。
余談ですが、これは前の質問のフォローアップまたは編集として適切です。
私のRは1970-01-01を使用しています:
>as.Date(15103, Origin="1970-01-01")
[1] "2011-05-09"
これはからの計算と一致します
>as.numeric(as.Date(15103, Origin="1970-01-01"))
数値に日付と時刻の両方の情報がある場合は、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"
別のオプションは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クラスで使用される番号付けシステムのオリジンです。
したがって、一般的にこれは解決されていますが、使用する日付が正しい形式ではないため、このエラーメッセージが表示される場合があります。
私はこれが古い投稿であることを知っています。しかし、これを実行するたびに、日付列の一番下に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)
この移行があなたの一部を助けることを願っています。