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

时间:2015-05-26 20:05:52

标签: r xts na data-manipulation

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

我无法正确使用语法。

2 个答案:

答案 0 :(得分:4)

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

rowSums(x,na.rm=TRUE)

答案 1 :(得分:0)

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

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