我有一个2列XTS的列表,我想将每个XTS的第二列除以第三个XTS,并将结果存储回第二列。我目前正在使用for循环来执行此操作:
for(i in 1:length(data)){
data[[i]][,2] <- data[[i]][,2] / temp
}
temp
是单列XTS,它有时比数据中的XTS长,有时不会,但它们确实重叠。
如果没有for循环,我怎么能这样做?
答案 0 :(得分:1)
没有适当的样本数据拍摄。如果您提供样本数据,我会相应地更新答案。
对于时间序列,IMO,正确的划分方式将是对应于相同时间戳的值。要做到这一点,您应首先merge
temp
xts时间序列与列表对象data
的每个元素,然后进行除法。为此,您可以使用lapply
和自定义函数div
,如下所示。
div <- function(x) {
x <- merge(x,temp)
x[,2] <- x[,2] / x[,3]
}
lapply(X = data, FUN = div)