【问题标题】:sumif function in R of two matrices两个矩阵的 R 中的 sumif 函数
【发布时间】:2013-06-17 14:55:58
【问题描述】:

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

A
2 1 0
0 1 6
1 4 6

B 
1 1 3
4 2 8
2 5 1

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

如果 B 所以我的结果矩阵应该是

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))

有什么想法吗?

谢谢

【问题讨论】:

  • 如果您觉得下面发布的答案解决了您的问题,您应该考虑单击复选标记接受它...
  • 刚刚做到了!谢谢你告诉我,我不知道

标签: r matrix


【解决方案1】:

怎么样:

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

或@Roland 的建议(更短):

rowSums(A*(B<3))

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

【讨论】:

    猜你喜欢
    • 2017-02-27
    • 2020-10-15
    • 2020-03-28
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多