を供給する必要があります。しかし、それは時々私にエラーメッセージが表示できますエラー:起源は、私は、データセットをきれいにするために、次のコードを持っている
data1 <- data1 %>%
mutate(YEAR = year(DATE),
MONTH = month(DATE),
DAY=day(DATE),
HOUR=hour(TIME),
MINUTE = minute(TIME),
RETURN= ((PRICE-lag(PRICE))/lag(PRICE))
) %>%
filter(HOUR >= 9, (HOUR <= 16 & MINUTE <=61)) %>%
group_by(MINUTE, HOUR, DAY, MONTH, YEAR) %>%
summarize(AV.PRICE = mean(PRICE, na.rm=TRUE),
SUM.SIZE=sum(SIZE, na.rm=TRUE),
RV=sum(RET^2)) %>%
arrange(YEAR, MONTH, DAY, HOUR, MINUTE) %>%
mutate(DATETIME = as.POSIXct(
paste(YEAR,"/",MONTH,"/", DAY, " ", HOUR,":", MINUTE,":00",sep=""),
format="%Y/%m/%d %H:%M:%S", origin = "1970-01-01")
)
:Error: 'origin' must be supplied
奇妙である何がエラーが、私はセッションでこのコードを実行されますが、その後の実行に最初に表示するときに表示されないということです。セッションを再開すると、問題は一度消えて、後で実行されます。したがって、私は常にそれを働かせるために再起動する必要があります。
私は疑問にチェック:How to solve: "Error in as.POSIXct.numeric(X[[2L]], ...) : 'origin' must be supplied"それは時間の整数から変換されるので、それがあるかもしれないことを示唆しました。しかし、データのglimpse
は、DATEが01クラスはない整数であることを示しています。
安全のために:私は、エラーの提案を踏襲し、日付を扱う機能のすべてに起源=「1970-01-01」引数を追加しました:
data1 <- data1 %>%
mutate(YEAR = year(DATE, origin = "1970-01-01"),
MONTH = month(DATE, origin = "1970-01-01"),
DAY=day(DATE, origin = "1970-01-01"),
HOUR=hour(TIME, origin = "1970-01-01"),
MINUTE = minute(TIME, origin = "1970-01-01"),
RET= ((PRICE-lag(PRICE))/lag(PRICE))
) %>%
filter(HOUR >= 9, (HOUR <= 16 & MINUTE <=61)) %>%
group_by(MINUTE,HOUR,DAY,MONTH,YEAR) %>%
summarize(AV.PRICE = mean(PRICE, na.rm=TRUE),
SUM.SIZE=sum(SIZE, na.rm=TRUE),
RV=sum(RET^2)
) %>%
arrange(YEAR, MONTH, DAY, HOUR, MINUTE) %>%
mutate(DATETIME = as.POSIXct(
paste(YEAR,"/",MONTH,"/", DAY, " ", HOUR,":", MINUTE,":00",sep=""),
format="%Y/%m/%d %H:%M:%S", origin = "1970-01-01")
)
、それはError: unused argument (origin = "1970-01-01")
それが助け場合は、ここで私のデータセットを垣間見るです:
Observations: 146,016,609
Variables: 4
$ DATE <date> 2008-01-02, 2008-01-02, 2008-01-02, 2008-01-02, 2008-01-02, 2008-01-02, 2008-01-02, ...
$ TIME <S4: Period> 9H 0M 4S, 9H 0M 4S, 9H 0M 4S, 9H 0M 4S, 9H 0M 4S, 9H 0M 4S, 9H 0M 4S, 9H 0M 4S...
$ PRICE <dbl> 146.86, 146.86, 146.86, 146.86, 146.86, 146.86, 146.86, 146.86, 146.86, 146.86, 146.8...
$ SIZE <int> 1000, 1000, 1000, 500, 2400, 1000, 1000, 1000, 2500, 1000, 1000, 400, 1000, 1000, 100...
私は基本パッケージの機能を使用して答え、または最もlubridate/dplyrで探しています。ありがとう!
ねえ、私はあなたのパッケージを試した、私はもう元のエラーを得ることはありませんが、私はDATETIMEのためのNAを取得します。コードの改訂された質問をご覧ください。私はあなたのパッケージに精通していないので、私は何か基本的なものを見ていない場合は申し訳ありません。 – shoestringfries
あなたはいつでも 'からNAを取得する()'や 'anydate()'あなたの入力は、すべての利用可能なフォーマットで解析できないとき。カスタムフォーマットを追加することができます。パッケージヘルプを参照してください。 –