【问题标题】:R: sum positive values and sum negative valuesR:对正值求和,对负值求和
【发布时间】:2015-07-21 07:24:56
【问题描述】:

我有一个向量:

vec <- c(1,-2,9,-7,7,4,5,2,1,-10)

现在我想取 vec 中负值的总和,以及 vec 中正值的总和。

neg <- sum of the negative values in vec
pos <- sum of the positive values in vec

【问题讨论】:

  • 或者你可以使用lapply(split(vec, vec &gt; 0), sum)之类的东西将结果保存在一个列表中
  • 或使用sign 拆分,以便为您的列表提供更有意义的名称。

标签: r vector sum


【解决方案1】:

试试:

pos <- sum(subset(vec, vec > 0))
neg <- sum(subset(vec, vec < 0))

或者:

l <- split(vec, vec < 0)
pos <- sum(l[[1]])
neg <- sum(l[[2]])

或者正如@David 在 cmets 中提到的那样:

m <- lapply(split(vec, vec < 0), sum)
pos <- m[[1]]
neg <- m[[2]]

【讨论】:

    【解决方案2】:
    neg <- sum(vec[vec<0]);
    pos <- sum(vec[vec>0]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 2020-12-29
      • 2021-01-29
      相关资源
      最近更新 更多