如何子集的XTS对象的行作为一个名为向量?

问题描述 投票:1回答:1

我无法弄清楚如何从XTS对象子集一排有一个结果,它是名为向量。下面是一个例子。做一个玩具XTS对象:

x <- c("a","b","c")
z <- as.data.frame(matrix(data = c(1,2,3,4,5,6,7,8,9), nrow = 3))
colnames(z) <- x
z_xts <- xts(z, order.by = as.Date(17897:17899))

下面是示例XTS对象,z_xts:

           a b c
2019-01-01 1 4 7
2019-01-02 2 5 8
2019-01-03 3 6 9

我想子集列a和z_xts的第2行的B,例如:

sub_z <- z_xts[2, ][1, c("a","b”)]

这给:

           a b
2019-01-02 2 5

谁是一流的“XTS”“动物园”。但是,我想通过这门课数字的命名载体。我用尽了一切,我可以得到的最接近的是:

sub_z <- as.numeric(coredata(z_xts[2, ][1, c("a","b")]))

这使:

[1] 2 5

这是一流的“数字”,但它已经失去了列名。我真正想要的是:

a b 
2 5

怎样才能做到这一点?

r subset xts zoo
1个回答
1
投票

这个怎么样

cols <- c("a", "b")
v <- setNames(as.numeric(z_xts[2, cols]), cols)
v
#a b
#2 5

v名为向量

str(v)
# Named num [1:2] 2 5
# - attr(*, "names")= chr [1:2] "a" "b"
© www.soinside.com 2019 - 2024. All rights reserved.