我想最大化向量中的数字并将结果作为新向量获取
赞:
w <- 0:10
maximizer <- function(w){
max(10, w + 5)
}
我期望得到一个向量(10,10,10,10,10,10,11,12,13,14,15),但是我得到的只是15。我知道解决这个问题的怪异方法,但是我敢肯定必须有一种更简单的方法...
答案 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 ”最大值(或最小值)。
同时
max
和min
返回其参数中所有值的最大值或最小值
答案 1 :(得分:0)
您可以将for-loop
与ifelse
语句一起使用,尽管不如所发布的解决方案那么优雅:
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