【问题标题】:Convert data from CSV file time series从 CSV 文件时间序列转换数据
【发布时间】:2015-02-02 06:22:52
【问题描述】:

我的 csv 文件中有这样的数据

Date          AAPL      MSFT       GOOG
8/19/2014   100.53  45.78787879     522.7956989
8/18/2014   99.16   45.56565657     517.0967742
8/15/2014   97.98   45.24242424     511.7204301
8/14/2014   97.5    44.71717172     508.1362007
8/13/2014   97.24   44.52525253     506.5232975
8/12/2014   95.97   43.95959596     499.9641577
8/11/2014   95.99   43.63636364     498.8888889
8/8/2014    94.74   43.63636364     494.4086022
8/7/2014    94.48   43.66666667     493.5842294
8/6/2014    94.96   43.17171717     493.5483871

我是这样读的

price_data <- read.csv("C:\\Prices.csv")

我想将它转换为时间序列。我在R - Transform Data frame to Time SeriesConvert data frame with date column to timeseries 看到了问题。
但是,就我而言,我有不止一列要转换。列数可以不同。

一种解决方案似乎是将每一列分开并转换为时间序列,然后使用 cbind 合并回来。

最好的方法是什么。

编辑
我想使用此数据计算组件 VaR。我也有符号位置

MSFT 1000
AAPL 1520
GOOG 398

“PerformanceAnalytics”包中的 VaR 接受时间序列。有没有其他方法可以将这些数据传递给函数?

【问题讨论】:

  • 通过合并回来,您想获得一个包含 3 列(日期、值和代码)的 data.frame 作为输出?
  • 我的意思是我希望它像日期(时间序列)、AAPL、MSFT、GOOG。所以它会像 4 列。更具体地说,我想计算组件 VaR stackoverflow.com/questions/27243094/…
  • 您实际上只是想将Date 列转换为时间序列,对吗?因为转换所有列没有意义。
  • 在这种情况下,如果您需要 xts 格式,最好使用具有 3 个时间序列的列表。编辑:您没有清楚地描述您想要什么,输出示例会有所帮助。
  • 是的并且使用包PerformanceAnalytics计算VaR,我猜这个方法只接受时间序列数据

标签: r csv time-series


【解决方案1】:

试试这个:

Lines <- "Date          AAPL      MSFT       GOOG
8/19/2014   100.53  45.78787879     522.7956989
8/18/2014   99.16   45.56565657     517.0967742
8/15/2014   97.98   45.24242424     511.7204301
8/14/2014   97.5    44.71717172     508.1362007
8/13/2014   97.24   44.52525253     506.5232975
8/12/2014   95.97   43.95959596     499.9641577
8/11/2014   95.99   43.63636364     498.8888889
8/8/2014    94.74   43.63636364     494.4086022
8/7/2014    94.48   43.66666667     493.5842294
8/6/2014    94.96   43.17171717     493.5483871"

library(PerformanceAnalytics)
library(zoo)
z <- read.zoo(text = Lines, header = TRUE, format = "%m/%d/%Y")

rets <- diff(z, arithmetic = FALSE) - 1
VaR(rets)

给予:

            AAPL         MSFT         GOOG
VaR -0.005010481 -0.001461903 -0.001090975

【讨论】:

  • 当我从 R 控制台 UI 运行命令时,它似乎正在工作。如果我尝试将其保存在 .r 文件中并从 Rscript.exe 运行它,则会显示“[.xts(R, , column) 中的错误:下标越界”。
  • 谢谢我让它工作了。这是分隔符问题。并且您的回答符合要求。
猜你喜欢
  • 1970-01-01
  • 2019-10-11
  • 2018-10-04
  • 1970-01-01
  • 2013-09-20
  • 2022-12-22
  • 2021-04-08
  • 2020-06-07
  • 2012-08-13
相关资源
最近更新 更多