gpt4 book ai didi

r - 关于如何在 xts 中获取下一个/上一个元素的基本问题

转载 作者:行者123 更新时间:2023-12-04 06:33:35 25 4
gpt4 key购买 nike

我有一个非常基本的问题...假设我可以使用

在 xts 对象中获取当前日期特定交易品种的收盘价
closePrice<-as.double(Cl(get(symbol))[currentDate]) 

如何获取前一天、两天、三天……或前/后n天的收盘价?

closePriceNDaysBefore<-as.double(Cl(get(symbol))[currentDate - n]) 

不好...

提前致谢。

亲切的问候,萨摩。

最佳答案

您可以很容易地做到这一点,具体取决于您所说的“当前日期”。

如果当前日期是最后一个条目(刚刚提取最新数据),那么 last 和 first 将有所帮助:

> x <- xts(1:10, Sys.Date()-0:9)
> x <- xts(1:10, Sys.Date()-0:9)
> x
[,1]
2011-02-16 10
2011-02-17 9
2011-02-18 8
2011-02-19 7
2011-02-20 6
2011-02-21 5
2011-02-22 4
2011-02-23 3
2011-02-24 2
2011-02-25 1

# gets the last 3 periods (days here)
> last(x,3) # or last(x, "3 days")
[,1]
2011-02-23 3
2011-02-24 2
2011-02-25 1

# this would get you the 3rd day back from the end
> first(last(x,3),1)
[,1]
2011-02-23 3

相反,如果您需要当前日期来表示您在此特定循环/上下文中关心的日期,子集的 which.i=TRUE 参数将有所帮助 - 因为它采用非常相同的快速 ISO 查找,但返回匹配的位置。也就是说,它不执行子集。

> x[x["2011-02-25", which.i=TRUE] - 0]  # today
[,1]
2011-02-25 1

> x[x["2011-02-25", which.i=TRUE] - 1] # yesterday
[,1]
2011-02-24 2
> x[x["2011-02-25", which.i=TRUE] - 2] # 2 days ago...
[,1]
2011-02-23 3

> x[x["2011-02-25", which.i=TRUE] - 3] # you get the idea ;-)
[,1]
2011-02-22 4

> x["2011-02-25", which.i=TRUE]
[1] 10

关于r - 关于如何在 xts 中获取下一个/上一个元素的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com