gpt4 book ai didi

r - max(x, na.rm = TRUE) 无论如何都会返回 "NA"

转载 作者:行者123 更新时间:2023-12-04 14:24:28 26 4
gpt4 key购买 nike

我有两个向量 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 的元素集中选择最大值,这样:

  1. 该集合仅包含与向量 val_hps 中的负元素具有相同位置的值;
  2. 该集合不包含数值为 0 的元素。

我是这样处理的:

e[e == 0] <- NA
e[max(which(val_hps < 0), na.rm = TRUE)]

这应该返回 -.02,但它实际上返回 NA。我误解了什么?谢谢!

附言。用 min() 函数替换 max() 函数就像一个魅力+ 在其他地方有一个看起来相似的问题:“mean( ,na.rm=TRUE) 仍然返回 NA”,但不幸的是它没有解决我的问题..

最佳答案

一切都按预期工作,但您的代码有错误。在你的最后一行,你做

e[max(which(val_hps < 0), na.rm = TRUE)]

which(val_hps < 0)返回 1 2 4 , 然后最大值将是 4 .所以你会得到e[4]的值, 在不幸的巧合(或幸运的)中恰好是您设置为 NA 的元素.这个巧合就是为什么它看起来像min作品和max没有。

正确的是

e[max(which(e < 0), na.rm = TRUE)]

这会忽略 NAe并返回 e[2]如你所愿。

关于r - max(x, na.rm = TRUE) 无论如何都会返回 "NA",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48771342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com