【问题标题】:how to select values from a list within a Range using while and if loop?如何使用while和if循环从范围内的列表中选择值?
【发布时间】:2021-09-10 07:13:13
【问题描述】:

我有一个包含值的列表,我需要从该列表中选择大于或等于 3 且小于/等于 4 的值,但我不知道如何使用 while 和 if 循环来执行此操作。谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: r while-loop


    【解决方案1】:

    如果我正确理解您的想法,您可以使用以下解决方案。假设我们有一个长度为 20 的向量,称为vec

    • 我们首先创建一个空向量out,以便在每次迭代(如果有)期间将我们的结果存储在其中
    • 然后我们将迭代器i设置为其第一个值(这里我们将初始值设置为1)

    虽然循环从测试条件开始(i =3 & out)。然后它将一个添加到迭代器并再次评估条件等等。

    vec <- sample(1:10, size = 20, replace = TRUE)
    
    out <- c()
    i <- 1
    
    while(i <= length(vec)) {
      if(vec[i] <= 4 & vec[i] >= 3) {
        out <- c(out, vec[i])
      } 
      i <- i + 1
    }
    out
    
    [1] 4 3
    

    【讨论】:

    • 我是 R 的初学者,如果我的问题有点令人困惑,我很抱歉,但我在没有示例部分的情况下尝试了您的解决方案,它非常适合我的目的。非常感谢!
    • 我很高兴,您不必为提问而感到抱歉,我们都去过那里。
    【解决方案2】:

    其实你不需要任何while/if 语句,你可以简单地申请

    x[x >= 3 & x <= 4]
    

    如果你必须使用whileif 来制作它,下面是一种选择

    k <- 1
    res <- c()
    while(k < length(x)) {
        if (x[k] >= 3 & x[k] <= 4) {
            res <- append(res,x[k])
        }
        k <- k + 1
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2014-06-26
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多