从xts对象中提取数值。

11

我想提取一个xts对象中的数字值。让我们看一个例子

data <- new.env()
starting.date <- as.Date("2006-01-01")
nlookback <- 20
getSymbols("UBS", env = data, src = "yahoo", from = starting.date)
Reg.curve <- rollapply(Cl(data$UBS), nlookback, mean, align="right")

Reg.curve仍然是一个xts对象,但实际上我只对移动平均值感兴趣。我该如何修改Reg.curve以获取一个数值向量?

2个回答

19

使用CoreData

reg.curve.num <- coredata(Reg.curve)
# or, if you want a vector:
reg.curve.num <- drop(coredata(Reg.curve))

有没有理由更喜欢使用 drop(coredata(Reg.curve)) 而不是 as.numeric(Reg.curve) - GSee
@GSee:前者不会假设/强制结果为数字,因此更通用。它适用于Reg.curve是数字、整数、逻辑、字符等的情况。 - Joshua Ulrich
我希望有一列包括时间索引。 - EngrStudent
@EngrStudent:时间索引位于index属性中。你可以使用index(Reg.curve)来访问它。它不能是一列,因为xts/zoo对象是矩阵,所以只能包含一种数据类型(即不能同时有日期列和数值列)。 - Joshua Ulrich

1
要提取任何xtstszoo对象的数值,请使用以下方法:
as.numeric(Reg.curve)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接