【问题标题】:How to convert stock data from xts object to ts object如何将股票数据从 xts 对象转换为 ts 对象
【发布时间】:2019-01-22 22:48:58
【问题描述】:

我使用 quantmod 从 yahoo Finance 下载股票数据。这里 msft 是一个 xts 对象。

library(quantmod)
library(forecast)
library(xts)
library(zoo)
start <- as.Date('2018-01-01')
end <- as.Date('2018-08-14')
getSymbols('MSFT', src='yahoo', from=start, to=end)
msft <- MSFT[, 'MSFT.Adjusted']

我正在尝试将 xts 对象转换为 ts 对象。下面是我所做的。我的结果有点奇怪。在这种情况下我应该放什么频率?库存数据为每日数据(仅限工作日)。非常感谢您的帮助。

ts(msft, start=c(2018,1,1), frequency = 365)

【问题讨论】:

    标签: r time-series xts


    【解决方案1】:

    您可以使用xts 库中的as.timeSeries.xts

    msft <- as.timeSeries.xts(MSFT)
    str(as.timeSeries.xts(msft))
    plot(msft)
    

    【讨论】:

      【解决方案2】:

      希望对你有帮助

      msft1<- as.data.frame(msft) #converting it to Data frame 
      rownames(msft1) <- NULL #Nullify all the rownames 
      
      timeseries<-ts(msft1, start=c(2018,1,1), frequency = 365) #convert it into a ts object
      plot(timeseries) ## Plot to verify the time series 
      

      您可以从下面的代码中选择工作日

      # install.packages('timeDate')
      require(timeDate)
      
      # A ’timeDate’ Sequence
      tS <- timeSequence(as.Date("1991/1/4"), as.Date("2010/3/1"))
      tS
      
      # Subset weekdays
      tW <- tS[isWeekday(tS)]; tW
      dayOfWeek(tW)
      

      【讨论】:

      • 谢谢。但我想知道股票数据是在工作日。将频率设置为 356 会弄乱时间,对吗?我很困惑我应该做什么......
      • @zesla 我已经更新了代码,说明如何仅从 ts 中获取工作日,请查看
      猜你喜欢
      • 2017-04-21
      • 1970-01-01
      • 2016-01-07
      • 2023-03-14
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2011-08-29
      • 2018-01-17
      相关资源
      最近更新 更多