gpt4 book ai didi

R:窗口()函数

转载 作者:行者123 更新时间:2023-12-04 09:42:37 30 4
gpt4 key购买 nike

我有一个名为 x 的矩阵看起来像这样:

        pTime  Close
1 1275087600 1.2268
2 1275264000 1.2264
3 1275264300 1.2265
4 1275264600 1.2268
5 1275264900 1.2265
6 1275265200 1.2265
7 1275265500 1.2270
8 1275265800 1.2269
9 1275266100 1.2268
10 1275266400 1.2275
...1000 rows

我使用 mts[2000] 将其转换为时间序列数据类型( tser<- ts(x)1 )

现在我想使用 window()函数(来自 stats 包)根据它们的 POSIX 时间戳(pTime 字段)隔离 #5 和 #8 之间的所有行,但我收到一条错误消息。
> A<- as.POSIXct(tser[5,1],origin="1970-01-01 00:00:00 UTC")
> B<- as.POSIXct(tser[8,1],origin="1970-01-01 00:00:00 UTC")
> A
pTime
"2010-05-31 01:15:00 EDT"
> B
pTime
"2010-05-31 01:30:00 EDT"

> window(tser[,1],A,B)
Error in window.default(x, ...) : 'start' cannot be after 'end'
In addition: Warning message:
In window.default(x, ...) : 'end' value not changed

有小费吗?

最佳答案

创建时间序列对象时,ts函数期望第一个参数是数据并且没有时间。 (无论如何,您可能想使用动物园对象。它们更有意义。)看看会发生什么:

> window(tser[,1],start=5,end=8)
Time Series:
Start = 5
End = 8
Frequency = 1
[1] 1275264900 1275265200 1275265500 1275265800

您的日期(以数字表示)已成为数据!

使用动物园非常简单。我不确定你的出发点是什么。我有数据帧中的数据。如果您确实有一个矩阵(我对此表示怀疑,因为它看起来不像矩阵对象的输出),您可以使用“[row,col]”访问样式。
require(zoo)
zooser <- zoo(x=tser$Close, order.by=as.POSIXct(tser$pTime, origin="1970-01-01"))
window(zooser, start=A, end=B)
#2010-05-31 01:15:00 2010-05-31 01:20:00 2010-05-31 01:25:00
# 1.2265 1.2265 1.2270
#2010-05-31 01:30:00
# 1.2269

关于R:窗口()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548697/

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