코드에 몇 가지 문제가 있습니다. 나는이 두 클래스를 더 잘 이해하기 위해 동물원과 xts 비 네트를 읽는 데 몇 분을 보냈다.
이
data <- structure(list(Date = c("2014/10/26", "2014/10/26", "2014/10/26"),
Time = c("17:30:12.500", "17:33:28.900", "17:33:52.600"),
Price = c(1.268, 1.268, 1.268), Amount = c(1000000L, 1000000L, 1000000L)),
.Names = c("Date", "Time", "Price", "Amount"), class = "data.frame",
row.names = c(NA, -3L))
xts
생성자에 대한 귀하의 전화가 작동하지 않습니다
은 가정 당신의 data
는 것 같습니다.
x <- xts(data, order.by = as.POSIXct(data$Time, format = "%H:%M:%S.%ms"))
data$Time
그냥 시간이 아닌 날짜, 그래서 as.POSIXct
오늘 날짜를 사용합니다. 그러나 형식을 잘못 지정했기 때문에이 방법이 작동하지 않습니다 ("%ms"
은 유효한 형식입니다 (?strptime
참조). 결과 값은 모두 NA
이됩니다.
data
에 여러 유형의 데이터 (문자 (배수?), 배수, 정수)가 포함되어 있고 xts 객체가 색인 속성이있는 행렬이기 때문에이 두 가지 문제를 해결 한 후에도 코드가 작동하지 않으며 ' 매트릭스에서 유형을 혼합하십시오. 따라서 xts 객체의 coredata에서 Date 및 Time 열을 제외해야합니다. 그리고 format
인수를 as.POSIXct
으로 올바르게 지정해야합니다.
x <- xts(data[,c("Price", "Amount")],
order.by=as.POSIXct(paste(data$Date, data$Time), format="%Y/%m/%d %H:%M:%OS"))
지금
to.period
작동합니다 : 당신은 볼륨과 양의 열을 집계 할 경우
to.period(x, "seconds")
# x.Open x.High x.Low x.Close
# 2014-10-26 17:30:12 1.268 1.268 1.268 1.268
# 2014-10-26 17:33:28 1.268 1.268 1.268 1.268
# 2014-10-26 17:33:52 1.268 1.268 1.268 1.268
, 당신은 to.period
를 호출하기 전에 이름을 변경해야합니다.
colnames(x)[2] <- "Volume"
to.period(x, "seconds")
# x.Open x.High x.Low x.Close x.Volume
# 2014-10-26 17:30:12 1.268 1.268 1.268 1.268 1e+06
# 2014-10-26 17:33:28 1.268 1.268 1.268 1.268 1e+06
# 2014-10-26 17:33:52 1.268 1.268 1.268 1.268 1e+06
조슈아, 도와 줘서 고마워. 나는 당신이 말했듯이 실수를 수정했지만 여전히 같은 오류가 있습니다. (데이터 $ Date 및 데이터 $ Time을 데이터 [, 1] 및 데이터 [, 2]로 대체해야 함) 또한 시간 형식은 "% Y/% m/% d % H : % M : % OS"입니까 –
죄송합니다 , 여기서 계속하겠습니다 ... format = "% Y/% m/% d % H : % M : % OS"는 밀리 초를 나타내지 않지만 % OS1 (또는 OSn)) 여기서 작동하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까? –
@EniyaAlby : 기본적으로 밀리 초가 인쇄되도록하려면 options (digits.secs = 3)을 설정해야합니다. 그들이 인쇄하지 않는다고해서 그들이 거기 있지 않다는 것을 의미하지는 않습니다. ;-) –