首页 > 解决方案 > 当满足条件时,在 R 中嵌套循环以给出 DF 位置

问题描述

我正在运行一个带有 If 子句的嵌套 for 循环,以确定我的矩阵中的哪个相关性高于 90% (.9) 或低于 100% (1)。运行我创建的循环时,它只给出以下输出:

R问题

请在下面查看我的代码:

colss = ncol(x)
rowss = nrow(x)

for (i in rowss){
 for (j in colss){
   if (x[i,j] > .9 || x[i,j] < 1){
    print(x[i,j])
  }
 }
}   

有没有办法获得 DF 中具有所需值的位置(>.9 || < 1)?

示例输出:

[12] .90

[15] .92098

披露:我尝试查看与我类似的其他问题,但答案并不完全有意义,所以如果你能把它简化一下,我将不胜感激。

标签: rloops

解决方案


要获得符合您条件的职位,请尝试which

DF <- matrix(runif(20),4)
DF
#           [,1]      [,2]      [,3]      [,4]      [,5]
# [1,] 0.0794861 0.5229619 0.1095744 0.3804106 0.2984173
# [2,] 0.9484121 0.5484754 0.6794459 0.6099729 0.3454522
# [3,] 0.2310753 0.8656815 0.4991712 0.8683982 0.8322723
# [4,] 0.9121636 0.1028238 0.4266272 0.3025331 0.3265509

which(DF > 0.9 & DF < 1)
# [1] 2 4

which(DF > 0.9 | DF < 1)
#  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20


推荐阅读