주어진 행 (k)의 가격 (가격) (k)가 위의 가격 (k-1)과 동일한 지 평가하려고합니다. 이전 볼륨과 해당 가격 (볼륨 (k) + 볼륨 (k + 1))에서 볼륨을 합한 다음 중복 가격 인 행 k를 제거하십시오.효율적인 (반복) 루핑
나는 반복 된 값을 삭제하려고하는 거대한 데이터 세트에 적용 할 다음 반복 루프를 가지고 있습니다.
k <- 1
repeat{
if(Prices$Price[ k + 1 ] == Prices$Price[ k ]){
Prices$CumVolume[ k + 1 ] <- Prices$CumVolume[ k + 1 ] + Prices$CumVolume[ k ]
Prices <- Prices[ -k , ]
k <- k + 1
if(k > nrow(Prices)) break
}
}
루프가 매우 느리고 속도를 높이는 방법이 있는지 궁금합니다. 불행하게도 나는 R에 비교적 새롭고 이것에 관해가는 가장 좋은 길을 찾기가 어렵다.
루프가 현재 반복 중임을 관찰하는 방법이 있습니까? 즉, 작업이 반복 될 때마다 작업 영역에 표시됩니까?
예 데이터 :
Date Time Price CumVolume Ret MeanRet VolRet
26 01-JAN-2009 21:30:01.783 96.660 537 0 0 0
31 01-JAN-2009 21:30:58.041 96.650 78 0 0 0
33 01-JAN-2009 21:34:09.589 96.640 60 0 0 0
35 01-JAN-2009 21:34:10.879 96.640 40 0 0 0
37 01-JAN-2009 21:35:55.001 96.635 50 0 0 0
는, U 코드가 "반복 값"에 대한 것을 확실합니까? – Aashu
예. 원래의 쿼리에서 초기 if 문이 누락되었습니다. – user2832896
루프 후에 출력을 보았습니까? 가격 데이터 프레임 반복을 마친 후 의미? – Aashu