r - 如何将 xts 对象的一行子集为命名向量?
问题描述
我无法弄清楚如何从 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
谁是“xts”“动物园”类。但是,我想要一个数字类的命名向量。我已经尝试了一切,我能得到的最接近的是:
sub_z <- as.numeric(coredata(z_xts[2, ][1, c("a","b")]))
这使:
[1] 2 5
这是“数字”类,但它丢失了列名。我真正想要的是:
a b
2 5
一个人是怎么做到的??
解决方案
这个怎么样
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"
推荐阅读
- c# - WPF-NotifyIcon 查找资源不起作用 - Hardcodet.WPF.TaskbarNotification
- c++ - 我的代码有什么问题关于通过向量找到最大的一个和最小的一个
- java - 为什么在我的 gradle 构建过程中出现元空间错误?
- ios - SpeechKit 所需条件为假:IsFormatSampleRateAndChannelCountValid(format)
- amazon-web-services - 如何将 SQS 队列订阅到 Java 中的 SNS 主题
- r - 使用 sum 操作数据框列
- android - 使用 try-with-resources 的领域
- unit-testing - 如何在codeception yii 2中获取页面源
- java - 当使用 Java 邮件 API 从 SMTP 服务器发送时,Outlook 中的电子邮件以不同的顺序出现
- java - Android Studio 更新后无法解析任何符号