我有两个向量val_hps和e:
val_hp1 <- -1
val_hp2 <- -1
val_hp3 <- +1
val_hp4 <- -1
val_hps <- c(val_hp1, val_hp2, val_hp3, val_hp4)
e <- c(-.1, -.02, +.03, 0)
我想从向量e的元素集合中选择最大值,满足以下条件:
- 该集合仅包含与向量val_hps中负数位置相同的值;
- 该集合不包含数字值为0的元素。
我的做法如下:
e[e == 0] <- NA
e[max(which(val_hps < 0), na.rm = TRUE)]
这应该返回-0.02,但实际上返回NA。 我误解了什么?谢谢!
PS。使用min()函数代替max()函数可以完美解决问题。 此外,还有一个类似的问题:“mean( ,na.rm=TRUE)仍然返回NA”,但不幸的是它并没有解决我的问题。
max(e[e != 0 & val_hps < 0])
。 - Frank