如何最大限度地提高矢量

问题描述 投票:2回答:2

我想最大的向量号和得到的结果作为新的载体

像这样:

w <- 0:10
maximizer <- function(w){
  max(10, w + 5)
}

我期待得到一个向量(10,10,10,10,10,10,11,12,13,14,15),但所有我得到的是15,我知道解决这个奇怪的方式,但我敢肯定,必须有一个更简单的方法...

r vector max
2个回答
4
投票

取而代之的max你应该使用pmax

maximizer <- function(w) pmax(10, w + 5)
maximizer(0:10)
# [1] 10 10 10 10 10 10 11 12 13 14 15

以来

pmax()pmin()采取一个或一个以上向量作为参数,将它们再循环到共同的长度和返回单个矢量给出该参数向量的“平行”的最大值(或最小值)。

maxmin返回所有的值出现在他们的论点的最大值或最小值


0
投票

你可以使用一个for-loopifelse声明虽然不是优雅的解决方案发布:

for(i in seq_along(w)){
  w[[i]] <- ifelse(w[[i]]+5 < 10, 10, w[[i]] + 5)
}


[1] 10 10 10 10 10 10 11 12 13 14 15
© www.soinside.com 2019 - 2024. All rights reserved.