如何正确地将行名称分配给 R 中的 ("mts"、"ts"、"matrix") 对象?
How to properly assign row names to ("mts", "ts", "matrix") object in R?
我想将行名称分配给 ("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 进行了行名分配,但是错误的。为什么?有什么想法吗?
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:利率的第一个差异
我想将行名称分配给 ("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 进行了行名分配,但是错误的。为什么?有什么想法吗?
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:利率的第一个差异