r - 将 R 中矩阵的每一列中的最后 n 个非 NA 值相加
问题描述
我有一个如下所示的矩阵:
x1<-c(1,2,3,4,5,6,NA)
x2<-c(1,2,NA,4,5,NA,NA)
x3<-c(1,2,3,4,NA,NA,NA)
x4<-c(1,2,3,NA,NA,NA,NA)
x5<-c(1,2,NA,NA,NA,NA,NA)
x<-cbind(x1,x2,x3,x4,x5)
如果我想计算每列的最后 3 个非 NA 值,并且如果一列的非 NA 值少于 3 个(如第 5 列),那么我将对该列中的所有非 NA 值求和。我想要一个看起来像的输出
15 11 10 6 3
谢谢!
解决方案
您可以使用apply
withtail
来总结最后一个非NA
like:
apply(x, 2, function(x) sum(tail(x[!is.na(x)], 3)))
#x1 x2 x3 x4 x5
#15 11 9 6 3
推荐阅读
- git - Git Branching 策略思路与 git flow 定制
- reactjs - React Spring 和样式化组件
- python - 如何根据季度数据计算一年的平均值?
- javascript - Javascript - 循环嵌套循环
- angular - Angular:多个 valueChanges 超出了最大调用堆栈大小
- c - 为什么 realloc 似乎没有扩展内存。realloc 没有按描述工作
- mysql - keycloak docker mysql连接链接失败
- typescript - 打字稿:如果提供了类型,如何要求一个属性,如果没有提供类型,如何禁止该属性?
- java - 自定义注释没有得到参数的值
- python - 为强化学习实现 LSTM 时间步长