0
我試圖找出最近的位置來表示關閉位置(cP)。R錯誤:替換長度爲零
比方說,我有以下幾點:
indicator.Trade=c(1,1,0,0,-1,0,0,0,1,1,0,-1,-1)
cP=c(NA,NA,1,1,NA,-1,NA,NA,1,NA,NA,1,NA)
## If indicator.Trade[1] is 1, I want to obtain order.book[1,1]=1 and order.book[2,1]=3.
## If indicator.Trade[2] is 1, I want to obtain order.book[1,2]=2 and order.book[2,2]=3.
order.book=matrix(0,nrow=2,ncol=(length(indicator.Trade)-1))
for(i in 1:(length(indicator.Trade)-1)){
if((indicator.Trade[i]==1)){
order.book[1,i]=i
order.book[2,i]=head(which(cP[c((i):(length(indicator.Trade)-1))]==1),1)
} else if(indicator.Trade[i]==-1){
order.book[1,i]=i
order.book[2,i]=head(which(cP[c((i):(length(indicator.Trade)-1))]==-1),1)
} else {
order.book[1,i]=i
order.book[2,i]=0
}
}
但是運行上面的代碼,我收到以下錯誤:
in order.book[2, i] = head(which(cP[c((i):(length(indicator.Trade) - :
replacement has length zero
我試着手動替換:
i=1 and i=(length(indicator.Trade)-1)
至於建議在Simple for loop in R producing "replacement has length zero" in R檢查數字(0),但似乎並非如此。我在這裏錯過了什麼?
編輯
我剛剛意識到
head(which(cP[c(((length(indicator.Trade)-1)):(length(indicator.Trade)-1))]==1),1)
[1] 1
所以,我對查找正確的索引位置的代碼將是錯誤的。不過,我仍然期待它能夠運行。
考慮在那裏我已經買了次新股的情況下:1,3,4;這是指標。在這種情況下進行交易。 現在,我想出售我的股票,只要符合某些條件。所以如果時間滿足條件:2,5 ...在時間= 2時,我想賣出1股,在時間= 5時,我想賣出3和4的股票。這就是cP的目的;以指示何時符合條件。希望能幫助解釋我在做什麼。如果可能的話,你有沒有機會知道如何獲得正確的索引位置? – mathnoob
我想當你說索引時,你指的是數據結構中的下標和子集值? – Sathish
下標和子集化可以通過'$','[]'和'[[]]'完成。您可以根據變量 – Sathish