我目前设置了一行代码来对xts对象的每一行/日期求和,其中每个数据点的值= 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]})
我无法正确使用语法。
答案 0 :(得分:4)
对于xts对象,您应该使用rowSums
而不是sapply
,因为apply函数在内部使用循环,rowSums
调用更快的C代码。
rowSums(x,na.rm=TRUE)
答案 1 :(得分:0)
is.na是一个函数,你应该使用
which(!is.na(live[x,]))