2013-08-02 1 views
0

고유 명령을 사용하면 원시 일일 재고 데이터에서 고유 한 시세표 목록을 쉽게 얻을 수 있습니다. 몇 가지 기본적인 CALCS을 할 목록을요인 열을 xts 오브젝트에 추가

my.table <- unique(my.frame1[,5]) 
> my.table 
[1] NPN BIL CFR IMP FSR SHF SHP REI INP OML REM ABL AGL SAB WHL BTI MMI RMI PIK TRU INL SPP CLS 
[24] SBK PPC IPL SOL ASA RMH MTN ANG EXX DSY NED SLM AVI KIO VOD GFI APN 
40 Levels: ABL AGL ANG APN ASA AVI BIL BTI CFR CLS DSY EXX FSR GFI IMP INL INP IPL KIO ... WHL 

그러나, 지금 루프 : 어느 발생합니다. 나는 각 거래일에 종목 코드를 할당하려고하지만, 예상대로 목록에서 관찰 내 데이터와 상호 작용하지 않습니다

> code <- my.table[2] 
> code 
[1] BIL 
40 Levels: ABL AGL ANG APN ASA AVI BIL BTI CFR CLS DSY EXX FSR GFI IMP INL INP IPL KIO ... WHL 

> my.daily <- my.daily[,3:6] 
> my.daily[,1] <- code 
> my.daily 
      my.xts...1..Low my.xts...1..Close  VWAP SIDE 
2011-08-31    7    23765 23744.30 1 
2011-09-08    7    22876 23056.72 1 
2012-02-14    7    25050 25230.52 -1 
2012-07-25    7    23480 23591.01 -1 
2013-05-12    7    26818 26737.65 -1 

는 지금은 "내 XTS의 첫 번째 열이 될 객체를 기대했을 것이다 BIL "을 사용합니다.

내가 무엇을 놓치고 있습니까?

+1

아마'code'가 (BIL이 7 번째 레벨 인) 요소이기 때문일 것입니다. 'my.daily'에 저장하기 전에 문자로 변환하십시오. – Thomas

답변

2

xts은 숫자 행렬입니다. 매트릭스에는 여러 유형 (숫자 및 요소)을 사용할 수 없습니다. 계수는 하나의 유형 (여기에 숫자)을 가지도록 (이미 주석으로 표시된대로) 강제 변환됩니다.

해결 방법으로 먼저 xts 개체를 data.frame으로 강제 변환 할 수 있습니다.

my.daily <- as.data.frame(my.daily) 
my.daily[,1] <- code 

하지만 왜이 작업을 수행하려고합니까? 시계열을 다루기 위해서는 xts의 모든 힘과 효율성이 느슨합니다.

+0

트릭을 주셔서 감사합니다! 이렇게하는 이유는 내가 마지막 단계로 모든 다양한 주식의 결과를 대조하도록 허용하기 위해서입니다. 이 데이터를 사용하여 특정 계정에서 거래 실행을 분석합니다. 즉, 수많은 기간 동안 수많은 주식이있을 수 있습니다. –