相关疑难解决方法(0)

按列名称引用时间序列对象

我有一个test具有列名称的数据框对象:

> test
       a     b     c     d     e
1  -0.67 -0.02 -0.10 -0.22 -0.32
2   0.46 -1.51 -0.79  0.26  1.19
3   0.22 -0.18 -1.40  0.41 -0.32
4  -2.21  0.79  0.36  1.00 -0.51
5  -0.69  0.39 -0.76 -0.73 -0.43
Run Code Online (Sandbox Code Playgroud)

在这种格式中,我可以使用test$b表示法轻松访问列.我可以毫不费力地将其转换为时间序列对象:

test.ts <- ts(test, frequency=<value>, start=<value>
Run Code Online (Sandbox Code Playgroud)

但是,一旦它是一个ts对象,是否有任何简单的方法来按名称而不是按列号访问列(或行)?该test.ts对象仍具有列名信息,使用colnames以下方式显示:

> colnames(test.ts)
[1] "a" "b" "c" "d" "e"
Run Code Online (Sandbox Code Playgroud)

但是,test.ts$b不起作用.请注意,通过"轻松"我的意思是不写一些丑陋的东西test.ts[,which(colnames(test.ts)=="b"],因为这不容易,这是丑陋的.是的,我可以编写自己的函数来做到这一点,但我想知道是否有内置的方法来做到这一点.谢谢!


按照要求:

> dput(head(a))
structure(list(a = c(-0.67, 0.46, 0.22, -2.21, -0.69, -0.45), 
    b …
Run Code Online (Sandbox Code Playgroud)

r time-series

10
推荐指数
1
解决办法
9645
查看次数

标签 统计

r ×1

time-series ×1