【发布时间】: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
我有两个向量
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
使用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))
我们可以使用head 和tail 这样做:
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
【讨论】:
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
【讨论】: