gpt4 book ai didi

r - 两个矩阵的R中的sumif函数

转载 作者:行者123 更新时间:2023-12-04 09:10:00 28 4
gpt4 key购买 nike

我有两个包含时间序列数据的矩阵

A
2 1 0
0 1 6
1 4 6

B
1 1 3
4 2 8
2 5 1

我想创建一个比较 A 和 B 并满足以下条件的向量:

如果B<3,则按行对A中符合条件的元素求和
所以我的结果矩阵应该是

C
3 (=2+1)
1
7 (=1+6)

我试过用下面的方法来做,但是我没能得到正确的结果

posneg_fun<-function(x,y)
{
new<-sum(x[y<3])
return(new)
}

out<-t(apply(x,1,FUN=posneg_fun,y))

有什么想法吗?

谢谢

最佳答案

怎么样:

A[B>=3] <- NA
rowSums(A,na.rm=TRUE)
## [1] 3 1 7

或@Roland 的建议(甚至更短):

rowSums(A*(B<3))

它利用了在进行数值运算时 TRUE 被强制为 1 而 FALSE 被强制为 0 的事实 ...

关于r - 两个矩阵的R中的sumif函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150595/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com