【问题标题】:New vector as sum of elements according to rule根据规则将新向量作为元素之和
【发布时间】:2017-08-21 13:58:05
【问题描述】:

我需要一个规则来创建一个新向量,使得第一个元素 = 向量 1 的第一个元素,第二个元素 = 向量 1 的第二个元素和向量 2 的第一个元素的总和,第三个元素 = 第三个元素的总和向量 1 的元素,向量 2 的第二个元素和向量 3 的第一个元素,...,最后一个元素是最后一个向量的最后一个元素。

例如,有两个向量 (v1, v2),

v1 <- c(1, 2, 3)

v2 <- c(4, 5, 6)

new.vector <- c(1, 6, 8, 6)

非常感谢所有建议!

【问题讨论】:

    标签: r


    【解决方案1】:

    将前导 0 和尾随 0 分别添加到 v1 和 v2 怎么样:

    c(v1, 0) + c(0, v2)
    

    使它成为一个函数:

    f <- function(v1, v2) c(v1, 0) + c(0, v2)
    

    【讨论】:

      【解决方案2】:
      c(v1[1], v2+c(v1[-1],0))
      #[1] 1 6 8 6
      

      如果你愿意,可以加入一个函数

      foo = function(x, y){
          return(c(x[1], y+c(x[-1],0)))
      }
      foo(v1, v2)
      #[1] 1 6 8 6
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-10
        • 2012-08-04
        • 2015-07-20
        • 2017-02-25
        • 1970-01-01
        • 1970-01-01
        • 2018-11-03
        • 1970-01-01
        相关资源
        最近更新 更多