2013-03-02 1 views
1

일부 데이터를 수동으로로드하는 중 (quantmod를 통해) 및 xts 클래스를 생성하려고합니다 (모두 작동하는 것으로 보이지만), Date를 사용할 수 없습니다. 타입 인덱스.날짜 유형이 xts 클래스 인 색인을 생성 할 수 없습니다

또 다른 시계열 (NDX, quantmod를 통해)과 교차점을 찾으려고하는데, 이는 날짜 색인을 사용할 수 있으면 쉽습니다.

나는 a를 XTS 개체하지만 손실에 무엇을 알고 만들 때 내가 뭔가를 누락 있으리라 믿고있어. ## 제목 ##

VXN.tmp <- read.csv('VXNDailyPrices.csv', na.strings=c('n/a'), stringsAsFactors=F, header=F) 
VXN <- xts(as.matrix(VXN.tmp[,-1]), as.Date(VXN.tmp[,1], tz="", format='%m/%d/%y'), tzone="") 
colnames(VXN) <- c('Open', 'High', 'Low', 'Close') 
VXN <- VXN[!is.na(Cl(VXN))] 

> head(VXN) 
      Open High Low Close 
2001-02-02 NA NA NA 54.89 
2001-02-05 NA NA NA 55.85 
2001-02-06 NA NA NA 53.68 
2001-02-07 NA NA NA 54.41 
2001-02-08 NA NA NA 54.66 
2001-02-09 NA NA NA 55.85 
> VXN['2001-02-02'] 
      Open High Low Close 
2001-02-02 NA NA NA 54.89 
> VXN[as.Date('2001-02-02')] 
    Open High Low Close 
> 

다른 어떤 정보

> str(VXN) 
An ‘xts’ object from 2001-02-02 to 2013-03-01 containing: 
    Data: num [1:3040, 1:4] NA NA NA NA NA NA NA NA NA NA ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:4] "Open" "High" "Low" "Close" 
    Indexed by objects of class: [Date] TZ: 
    xts Attributes: 
List of 2 
$ tclass: chr "Date" 
$ tzone : chr "" 
> 
> vxnidx <- head(index(VXN), 20) 
> dput(vxnidx) 
structure(c(11355, 11358, 11359, 11360, 11361, 11362, 11365, 
11366, 11367, 11368, 11369, 11373, 11374, 11375, 11376, 11379, 
11380, 11381, 11382, 11383), class = "Date") 
> 
> vxnidx[1] 
[1] "2001-02-02" 
> VXN[vxnidx[1]] 
    Open High Low Close 
> VXN["2001-02-02"] 
      Open High Low Close 
2001-02-02 NA NA NA 54.89 
> 

http://www.cboe.com/micro/vxn/#historical

2/2/2001,n/a,n/a,n/a,54.89 
2/5/2001,n/a,n/a,n/a,55.85 
2/6/2001,n/a,n/a,n/a,53.68 
2/7/2001,n/a,n/a,n/a,54.41 
2/8/2001,n/a,n/a,n/a,54.66 
2/9/2001,n/a,n/a,n/a,55.85 
2/12/2001,n/a,n/a,n/a,57.05 
2/13/2001,n/a,n/a,n/a,58.42 
2/14/2001,n/a,n/a,n/a,57.49 
2/15/2001,n/a,n/a,n/a,55.19 
2/16/2001,n/a,n/a,n/a,55.34 
2/20/2001,n/a,n/a,n/a,57.93 
2/21/2001,n/a,n/a,n/a,59.57 
2/22/2001,n/a,n/a,n/a,60.99 
2/23/2001,n/a,n/a,n/a,62.03 
2/26/2001,n/a,n/a,n/a,61.77 
2/27/2001,n/a,n/a,n/a,63.27 
2/28/2001,n/a,n/a,n/a,63.65 
3/1/2001,n/a,n/a,n/a,64.32 

편집 : 세션 정보

데이터는 여기 CBOE에서입니다
> sessionInfo() 
R version 2.15.2 (2012-10-26) 
Platform: i386-apple-darwin9.8.0/i386 (32-bit) 

locale: 
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] PerformanceAnalytics_1.0.4.4 quantmod_0.3-17    TTR_0.21-1     
[4] xts_0.8-6     zoo_1.7-7     Defaults_1.1-1    

loaded via a namespace (and not attached): 
[1] grid_2.15.2  lattice_0.20-10 
> 
+0

어떤 버전의 R, xts, zoo 등 (즉, sessionInfo? –

+0

의 출력이 세션 정보에 추가되었습니다 : R 2.15.2, quantmod 0.3-17, zoo 1.7-7, xts 0.8-6 – dizzy

답변

2

이렇게하면 최신 버전의 xts에서 경고가 표시됩니다. 패키지가 다소 구식이므로 업그레이드를 시도 할 수도 있습니다. 여기

library(quantmod) 
URL <- paste("http://www.cboe.com/publish/ScheduledTask", 
    "/MktData/datahouse/vxncurrent.csv", sep="") 
VXN.tmp <- read.csv(URL, na.strings='n/a', skip=2) 
VXN.tmp[,1] <- as.Date(VXN.tmp[,1], tz="", format="%m/%d/%Y") 
VXN <- xts(as.matrix(VXN.tmp[,-1]), VXN.tmp[,1], tzone="") 
# Warning message: 
# In xts(as.matrix(VXN.tmp[, -1]), VXN.tmp[, 1], tzone = "") : 
# ‘tzone’ setting ignored for Date indexes 
VXN <- VXN[!is.na(Cl(VXN))] 
VXN['2001-02-02'] 
#   Open High Low Close 
# 2001-02-02 NA NA NA 54.89 
VXN[as.Date('2001-02-02')] 
#   Open High Low Close 
# 2001-02-02 NA NA NA 54.89 

입니다 내 sessionInfo :

R> sessionInfo() 
R version 2.15.2 (2012-10-26) 
Platform: x86_64-pc-linux-gnu (64-bit) 

locale: 
[1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    
[3] LC_TIME=en_US.UTF-8  LC_COLLATE=en_US.UTF-8  
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 
[7] LC_PAPER=C     LC_NAME=C     
[9] LC_ADDRESS=C    LC_TELEPHONE=C    
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] quantmod_0.4-0 TTR_0.21-1  xts_0.9-3.2 zoo_1.7-10  Defaults_1.1-1 

loaded via a namespace (and not attached): 
[1] grid_2.15.2  lattice_0.20-13 

문제에 대한 이유는 모든 XTS 인덱스 값이 POSIXct으로 저장, 그래서 당신은 as.Date(VXN.tmp[,1], ...) XTS를 통해 날짜에 첫 번째 열을 변환하더라도 변환된다는 것입니다 ~ POSIXct. 또한 시간대를 지정하지 않으므로 OS에 의해 결정됩니다 (특히 문제가 될 수 있음).

tzone="UTC" (xts의 새로운 버전이 본질적으로 그렇기 때문에)을 설정할 수는 있지만 작동 여부는 말할 수 없습니다. 업그레이드하는 것이 가장 좋습니다.

+0

Thanks Joshua, 내 패키지를 업데이트하면 해결되었습니다. – dizzy

관련 문제