【问题标题】:How would I sum elements of two vectors but exclude the last element我如何将两个向量的元素相加但排除最后一个元素
【发布时间】:2020-03-05 19:40:26
【问题描述】:

我想将向量的所有元素加在一起。但是,我试图排除每个向量的最后一个元素。例如,

vector1 <- c(10,20,3000)
vector2 <- c(20,40,5000)

sum(vector1, vector2)
[1] 8090

但我想排除vector1 中的3000vector2 中的5000 以输出[1] 90。此外,这只是一个可重复的示例,我的真实向量没有相同数量的元素。这个可以吗?

【问题讨论】:

标签: r vector sum element


【解决方案1】:

您可以手动排除最后一个组件。 一种可能性是:

sum(rev(vector1)[-1], rev(vector2)[-1])

rev 反转向量,[-1] 选择除第一个元素以外的所有元素(反转向量的)。

【讨论】:

    【解决方案2】:

    您可以使用head 删除最后一个元素和sum

    sum(head(vector1, -1), head(vector2, -1))
    

    或者做

    sum(vector1[-length(vector1)], vector2[-length(vector2)])
    

    【讨论】:

      【解决方案3】:

      您可以在求和之前取消选择向量的最后一项:

      vector1 <- c(10,20,3000)
      vector2 <- c(20,40,5000)
      
      sum(vector1[-length(vector1)], vector2[-length(vector2)])
      

      【讨论】:

        猜你喜欢
        • 2021-04-05
        • 2012-08-20
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        • 1970-01-01
        • 2019-08-19
        相关资源
        最近更新 更多