如何对 .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)
我目前设置了一行代码来对 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)