如何对 .xts 对象中的每一行求和,其中值不丢失

How to sum each row in a .xts object, where values are NOT missing

我目前设置了一行代码来对 xts 对象的每个 row/date 求和,其中每个数据点的值 = 1:

   universe.rt=sapply(X=2:nrow(rt),FUN=function(x){sum(rt[x,which(live[x,]==1)])/count[x]})

我想更改代码,而不是对值 = 1 的行中的所有点求和,我想对值不为 NA 的行中的所有点求和:

   universe.rt=sapply(X=2:nrow(rt),FUN=function(x){sum(rt[x,which(live[x,]==!is.na)])/count[x]})

我的语法不正确。

is.na是一个函数,你应该用

which(!is.na(live[x,]))

对于 xts 对象,您应该使用 rowSums 而不是 sapply,因为应用函数在内部使用循环,并且 rowSums 调用更快的 C 代码。

rowSums(x,na.rm=TRUE)