如何将 xts 对象的一行子集作为命名向量?
How do I subset a row of an xts object as a named vector?
我无法弄清楚如何从 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
我想对 z_xts 的第 2 行的 a 列和 b 列进行子集化,例如:
sub_z <- z_xts[2, ][1, c("a","b”)]
这给出:
a b
2019-01-02 2 5
谁是 class“xts”“动物园”。但是,我想要一个 class 数字的命名向量。我已经尝试了一切,我能得到的最接近的是:
sub_z <- as.numeric(coredata(z_xts[2, ][1, c("a","b")]))
给出:
[1] 2 5
这是 class“数字”,但它丢失了列名。我真正想要的是:
a b
2 5
如何做到这一点?
这个怎么样
cols <- c("a", "b")
v <- setNames(as.numeric(z_xts[2, cols]), cols)
v
#a b
#2 5
v
被命名为 vector
str(v)
# Named num [1:2] 2 5
# - attr(*, "names")= chr [1:2] "a" "b"
我无法弄清楚如何从 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
我想对 z_xts 的第 2 行的 a 列和 b 列进行子集化,例如:
sub_z <- z_xts[2, ][1, c("a","b”)]
这给出:
a b
2019-01-02 2 5
谁是 class“xts”“动物园”。但是,我想要一个 class 数字的命名向量。我已经尝试了一切,我能得到的最接近的是:
sub_z <- as.numeric(coredata(z_xts[2, ][1, c("a","b")]))
给出:
[1] 2 5
这是 class“数字”,但它丢失了列名。我真正想要的是:
a b
2 5
如何做到这一点?
这个怎么样
cols <- c("a", "b")
v <- setNames(as.numeric(z_xts[2, cols]), cols)
v
#a b
#2 5
v
被命名为 vector
str(v)
# Named num [1:2] 2 5
# - attr(*, "names")= chr [1:2] "a" "b"