【问题标题】:Sum two sequences in R to yield a third sequence [duplicate]将R中的两个序列相加以产生第三个序列[重复]
【发布时间】:2021-09-25 04:38:43
【问题描述】:

我在 R 中有一个数字序列

A <- c(1,4,2,5,3,6)

我有第二个序列如下

B <- c(0,6,12)

我想将两个序列的元素相加,得到以下结果:

final_output = c(1,4,2,5,3,6, 7,10,8,11,9,12,13,16,14,17,15,18)

我尝试过A + B,但得到了:

  1 10 14  5  9 18 

我无法得到答案。有人可以指导我吗?

【问题讨论】:

  • 整洁。谢谢。
  • 你能把它作为答案发布吗?所以我可以接受

标签: r sequence addition


【解决方案1】:
vec <- c()

for(i in 1:length(B)){
vec <- c(vec, A + B[i])
}

【讨论】:

    【解决方案2】:

    这将创建一个序列列表,然后 unlist() 将所有序列合并在一起。

    这行得通吗:

    B<- c(0, 6,12)
    A<-c(1,4,2,5,3,6)
    
    unlist(lapply(B, function(x){x+A}))
    [1]  1  4  2  5  3  6  7 10  8 11  9 12 13 16 14 17 15 18
    

    【讨论】:

    • 是的。我想到了 unlist,但这很优雅
    【解决方案3】:

    使用outer -

    c(outer(A, B, `+`))
    #[1]  1  4  2  5  3  6  7 10  8 11  9 12 13 16 14 17 15 18
    

    【讨论】:

      【解决方案4】:

      使用rowSumsexpand.grid 的另一个选项:

      rowSums(expand.grid(A, B))
      

      给出:

       [1]  1  4  2  5  3  6  7 10  8 11  9 12 13 16 14 17 15 18
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-29
        • 1970-01-01
        • 2019-02-08
        • 2021-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多