Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 2 列 XTS 的列表,我想将每个 XTS 的第二列除以第三个 XTS,并将结果存储回第二列。我目前正在使用 for 循环来执行此操作:
for(i in 1:length(data)){ data[[i]][,2] <- data[[i]][,2] / temp }
temp是单列 XTS,有时数据中的 XTS 更长,有时不是,但它们确实重叠。
temp
如果没有 for 循环,我怎么能做到这一点?
在没有适当样本数据的情况下拍摄。如果您提供示例数据,我会相应地更新答案。
对于时间序列,IMO,进行除法的正确方法将是对应于相同时间戳的值。为此,您应该首先使用列表对象的每个元素merge的tempxts 时间序列,data然后进行除法。为此,您可以使用下面定义的lapply自定义函数div。
merge
data
lapply
div
div <- function(x) { x <- merge(x,temp) x[,2] <- x[,2] / x[,3] } lapply(X = data, FUN = div)