【发布时间】:2018-03-03 16:20:48
【问题描述】:
我有两个向量 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)]
这应该返回 -.02,但它实际上返回 NA。 我有什么误解?谢谢!
附言。用 min() 函数替换 max() 函数就像一个魅力 + 其他地方有个类似的问题: “mean(,na.rm=TRUE) 仍然返回 NA”,但不幸的是它没有解决我的问题..
【问题讨论】:
-
用 NA 覆盖数据似乎是个坏主意。你可以做
max(e[e != 0 & val_hps < 0]) -
弗兰克:你成功了,谢谢!