如何最大化向量

时间:2019-02-10 17:19:46

标签: r vector max

我想最大化向量中的数字并将结果作为新向量获取

赞:

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

我期望得到一个向量(10,10,10,10,10,10,11,12,13,14,15),但是我得到的只是15。我知道解决这个问题的怪异方法,但是我敢肯定必须有一种更简单的方法...

2 个答案:

答案 0 :(得分: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()以一个或多个向量为参数,回收   它们具有相同的长度,并返回单个矢量,以给出参数矢量的“ parallel ”最大值(或最小值)。

同时

  

maxmin返回其参数中所有值的最大值或最小值

答案 1 :(得分: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