x<- xts(c(1, 1.1, 1.2, 1.3, 1.4, -.9, 1.2), Sys.Date()-7:1)
在x
我想要一個列,其中提到了下面提到的結果。滾動最大值(滾動寬度)滾動不起作用
x
[,1] max high
2013-07-07 1.0 1.0
2013-07-08 1.1 1.1
2013-07-09 1.2 1.2
2013-07-10 1.3 1.3
2013-07-11 1.4 1.4
2013-07-12 0.9 1.4
2013-07-13 1.2 1.4
如果我使用rollapply function
我必須保持寬度固定的,但我想最大值,直到日期對於每一日期。 rollapply
不起作用。 我想使用類似rollapply(x,[1:i],max),我將代表no。的行。 我已經得到了答案,以max.high我應該使用cummax和它的工作非常好。由於我一直禁止在這個論壇上提出新的問題,所以我在這個問題上添加了我的問題。我不知道它是否是正確的方式,但我沒有其他方法來做到這一點。
X < - XTS(C(100,98,105,100,99,98,96,95,94,93,99,100,106),Sys.Date() - 13:1) colnames(x)的< - 「值」 X $最大< - cummax(X $值) X $貿易< - ifelse(X $最大* 0.95> = X $值,1,0) X 值最大的貿易trade1 2013年7月5日100 100 0 0 2013-07-06 98 100 0 0 2013-07-07 105 105 0 0 2013-07-08 100 105 0 0 2013-07-09 99 105 1 1 2013-07-10 98 105 1 0 2013年7月11日96 105 1 0 2013年7月12日95 105 1 0 2013年7月13日94 105 1 1 2013年7月14日93 105 1 0 2013年7月15日99 105 1 - 1 2013年7月16日100 105 0 0 2013年7月17日106 106 0 -1
直到列貿易,我的代碼作品,但我需要它是基於trade1邏輯另一列trade1如果值至少小於列最大值的5%,則列將爲1,然後當列值至少等於列最大值的10%時,它將再次給出1,並且當該值從值的5%或更多94(當trade1列爲1時值列爲94),trade1列應該給我-1,當列值增加1時從價值99 0%以上(如再次值列99時trade1柱1)
如果任何一個需要更加清晰,我會再次嘗試這樣做。 關於 Anup
請不要惡意破壞你的帖子。 – ChrisF