我在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 Series和Convert data frame with date column to timeseries上见过问题。
但是,在我的例子中,我有多个列要转换。没有列可以是可变的。
一种解决方案似乎是将每一列分开,转换为时间序列,然后使用cbind合并回来。
什么是最好的方法。
编辑
我想使用这些数据计算组件VaR。我也有符号的位置
MSFT 1000
AAPL 1520
GOOG 398VaR包中的"PerformanceAnalytics“接受时间序列。还有其他方法可以传递这些数据来运行吗?
发布于 2014-12-04 13:56:44
试试这个:
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.001090975https://stackoverflow.com/questions/27292895
复制相似问题