【问题标题】:create a vector with maximum of two vectors for last five elements为最后五个元素创建一个最多有两个向量的向量
【发布时间】:2022-11-26 13:37:39
【问题描述】:

我有两个向量

a <- c(1,1,1,1,20,30,40,100,300)
b <- c(2,2,2,2,100,0,0,120,5)

我想创建一个向量,它只比较最后 5 个元素并为您提供两个向量的最大值。

前 4 个元素必须与向量 a 中的相同。

output <- c(1,1,1,1,100,30,40,120,300)

【问题讨论】:

    标签: r


    【解决方案1】:

    使用pmax。您使用的是矢量,而不是列表。

    > pmax(a,b)
    [1] 100  30  40 120 300
    

    使用更新的向量:

    > a <- c(1,1,1,1,20, 30,40,100,300)
    > b <- c(2,2,2,2, 100, 0, 0, 120, 5)
    > c(a[!a %in% tail(a, 5)], pmax(tail(a, 5), tail(b, 5)))
    [1]   1   1   1   1 100  30  40 120 300
    

    【讨论】:

    • 你能看看编辑过的问题吗?
    • 非常感谢
    • c(head(a,4), tail(pmax(a,b),5))
    【解决方案2】:

    我们可以使用headtail 这样做:

    c(head(a,-5), ifelse(tail(a,5)>tail(b,5), tail(a,5), tail(b,5)))
    
    [1]   1   1   1   1 100  30  40 120 300
    

    【讨论】:

      【解决方案3】:
      a <- c(1,1,1,1,20,30,40,100,300)
      b <- c(2,2,2,2,100,0,0,120,5)
      
      replace(a, tail(seq(a),5), pmax(tail(a,5),tail(b,5)))
      #> [1]   1   1   1   1 100  30  40 120 300
      

      【讨论】:

        猜你喜欢
        • 2012-08-20
        • 2015-01-11
        • 1970-01-01
        • 1970-01-01
        • 2012-12-25
        • 1970-01-01
        • 2014-05-22
        • 2011-04-14
        • 2014-06-15
        相关资源
        最近更新 更多