字符值上的for循环迭代

字符值上的for循环迭代,r,for-loop,character,R,For Loop,Character,我是R的新手,试着习惯循环。我目前正在解决一些练习,我现在被困在这一个 我有一个向量 v <- sample(c("cat", "dog", "mouse"), 100, replace = TRUE); 我知道这是非常基本的,但任何帮助都将不胜感激。v我认为您可以尝试下面的代码,在找到第五条“狗”后,for循环将终止 v <- sample(c("cat", "dog", "mouse"), 100, replace = TRUE) counter <- 0 for (

我是R的新手,试着习惯循环。我目前正在解决一些练习,我现在被困在这一个

我有一个向量

v <- sample(c("cat", "dog", "mouse"), 100, replace = TRUE);

我知道这是非常基本的,但任何帮助都将不胜感激。

v我认为您可以尝试下面的代码,在找到第五条“狗”后,
for
循环将终止

v <- sample(c("cat", "dog", "mouse"), 100, replace = TRUE)

counter <- 0

for (value in v) {
  if (value == "dog") {
    counter <- counter + 1
    print(sprintf("%s n_dogs found", counter))
  }
  if (counter == 5) {
      break
  }
}

ndog谢谢,更新了问题您可能还需要设置某种
计数器
变量,当您找到
狗时,该变量会增加1。也许把
柜台放好,谢谢。但是,我想在第5个值之后中断(在打印它之后)。我可以添加另一个带有(counter==5)的if语句吗?我尝试了
(v中的值){if(value==“dog”){print(sprintf(“%s n_dogs found”,counter));counter是的,您可以检查我的最新更新。
counter
的值已更改,请注意。另外,不要忘记接受/更新答案:)
v <- sample(c("cat", "dog", "mouse"), 100, replace = TRUE)

counter <- 0

for (value in v) {
  if (value == "dog") {
    counter <- counter + 1
    print(sprintf("%s n_dogs found", counter))
  }
  if (counter == 5) {
      break
  }
}
ndog <- 0
for (x in v) {
  if (x == "dog") {
    ndog <- ndog + 1
    print(sprintf("%s n_dogs found", ndog));
  }
  if (ndog == 5) break
}