0

我想将行名称分配给 ("mts", "ts", "matrix") 对象:

library(lubridate)
library(zoo)
myVAR <- cbind(ts(rnorm(64,0,1)),ts(rnorm(64,0,1)),ts(rnorm(64,0,1)), ts(rnorm(64,0,1)))
class(myVAR) # "mts" "ts" "matrix"
dim(myVAR) # 64x4

as.yearmon(seq(ymd('2010-09-01'), by = '1 month', length.out=(64)))
# "Sep 2010" "Oct 2010" ...."Dec 2015"; I wanna assign these as row names

row.names(myVAR) <- as.yearmon(seq(ymd('2010-09-01'), by = '1 month', length.out=(64)))

最后的分配几乎没有结果:

myVAR

# Time Series:
Start = 1 
End = 64 
Frequency = 1 
ts(rnorm(64, 0, 1)) ts(rnorm(64, 0, 1)) ts(rnorm(64, 0, 1)) ts(rnorm(64, 0, 1))
1         0.082237617          0.18201849          0.54350780    -0.09849474
 2        -0.471237861          0.82705042          0.72799739 0.68516426
 3        -0.258811941          0.36791007         -1.68230838  0.35263624
....................................................................
64   -0.663503979         -0.06671596          0.16724293 -0.12728622

但是,有趣的是:

row.names(myVAR)
[1] "2010.66666666667" "2010.75"          "2010.83333333333" "2010.91666666667"
............................................................
[61] "2015.66666666667" "2015.75"          "2015.83333333333" "2015.91666666667"

据我所知,这表明 R 进行了行名分配,但错误。为什么?任何想法?

4

1 回答 1

0

J_F 解决了我的问题:

就我而言,有平稳和非平稳变量。非平稳变量在差分后变得平稳。当这些系列与已经静止的系列一起考虑时,这些导致差异系列开始时的 NA。我申请了:

ts(ts.intersect(kur1f, lnbist1f, lnaltin, mfaiz1f), start = c(2010, 9), frequency = 12)

现在行名正是我想要的。再次感谢 J_F。

对于那些感兴趣的人:
kur1f:汇率的
第一个差异 lnbist1f:BIST100 证券交易所
ln 的第一个差异 lnaltin:黄金价格的 ln
mfaiz1f:利率的第一个差异

于 2016-10-13T08:15:49.093 回答