加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

R:window()函数

发布时间:2020-12-14 03:51:51 所属栏目:Windows 来源:网络整理
导读:我有一个名为x的矩阵,如下所示: pTime Close1 1275087600 1.22682 1275264000 1.22643 1275264300 1.22654 1275264600 1.22685 1275264900 1.22656 1275265200 1.22657 1275265500 1.22708 1275265800 1.22699 1275266100 1.226810 1275266400 1.2275...100
我有一个名为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,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[,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函数期望第一个参数是数据,并且没有时间. (你可能想要使用zoo-objects.它们更有意义.)看看会发生什么:

> window(tser[,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读