다음 코드를 사용하여 데이터 집합을 정리했습니다.오류 : 원본을 제공해야합니다.
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가 <date>
클래스이고 정수가 아님을 보여줍니다.
하는 것은 안전을 위해 : 나는 오류의 제안을 따라 날짜를 다루는 모든 기능에 기원 = "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...
: 도움이된다면
, 여기에 내 데이터 세트의 한 단면이다. 감사! 언제 패키지에서
안녕하세요, 귀하의 패키지를 시험해 보았습니다. 더 이상 기점 오류가 발생하지 않지만 DATETIME은 NAs가됩니다. 코드에 대한 수정 된 질문을 참조하십시오. 나는 당신의 패키지에 익숙하지 않아서, 내가 뭔가 기본적인 것을 보지 못해서 미안해. – shoestringfries
사용 가능한 모든 형식으로 입력을 분석 할 수 없을 때'anytime()'또는'anydate()'에서 NA를 얻습니다. 사용자 정의 형식을 추가 할 수 있습니다. 패키지 도움말을 참조하십시오. –