微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tsZOO中的错误:“ ts”对象必须具有一个或多个观察值

如何解决tsZOO中的错误:“ ts”对象必须具有一个或多个观察值

我昨天运行了这段代码,它执行得很好。但是今天,当我运行它时,我遇到了错误。当我检查ZOO表时,它没有数据,我为空。问题可能在哪里?

***library(Quandl)
library(quantmod)
library(tidyverse)
library(zoo)
library(readr)
getSymbols("FB",from = '2018-02-01',to = '2018-12-30',warnings = FALSE,auto.assign = TRUE)
fb_data <- FB
ZOO <- zoo(fb_data$FB.close,order.by=as.Date(as.character(fb_data$date),format='%Y-%m-%d'))
fb_ts <- ts(ZOO)***

解决方法

列名是FB.Close,大写字母C,而不是小写字母c,并且已经是xts / zoo。我们可以使用quantmod的Cl函数来选择收盘价。请注意,x是xts / zoo对象。

x <- Cl(FB)
class(x)
## [1] "xts" "zoo"

如果问题中代码的目的只是使其成为动物园对象而不是xts,则在getSymbols中使用return.class="zoo"进行指定:

# FB will be a zoo object
getSymbols("FB",from = '2018-02-01',to = '2018-12-30',warnings = FALSE,auto.assign = TRUE,return.class = "zoo")

或者如果您已经有一个xts / zoo对象x,则可以使用来将其转换为只是动物园

# if x is xts/zoo object then z will be zoo object
z <- as.zoo(x)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。