r - 如何找到大于或等于 a 的值,然后在 R 中找到这些最大值中的最小值?

标签 r loops for-loop if-statement minimum

a <- 0.6875
estFj <- c(-0.8231686, 0.1237904, 1.1967068, 1.3772572)

#What I tried so far is: 

for(i in estFj) {
  if (i >= a) { 
    t = c(i)
  }
}

t

但它只给出了 1.3772572 的值,而我需要大于或等于 a 的所有 estFj 值,然后找到这些大于或等于 a 的值中的最小值!

如何解决这个问题?

最佳答案

我们可以使用向量化函数,找到大于 aestFj 值,然后找到这些值的最小值。

> estFj => a # returns a logical vector
[1] FALSE FALSE  TRUE  TRUE
estFj[estFj => a]
[1] 1.196707 1.377257 # uses the logical vector to subset the original vector
> min(estFj[estFj >= a]) # take the minimum of this
[1] 1.196707

关于r - 如何找到大于或等于 a 的值,然后在 R 中找到这些最大值中的最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70381984/

相关文章:

r - 运算符 == 在 data.table 中的逻辑列中不一致

c - c 中的循环产生不需要的结果

javascript - 如何在代码中使用 For 循环?

javascript - 循环卡在第一个区间

r - 从数据帧的每个子集中减去第一个值

python - 如何使用Python中的现有列以其他列为条件创建新列

r - R 中的异步编程

C++显示元音和辅音并计数

C - 在 vector 中输入数字 0 时中断 while 循环

r - 在数据框中添加新列并从 R 中的矩阵中查找值