循环/中的paste()函数似乎未按R的预期工作

时间:2019-07-03 21:32:54

标签: r loops if-statement

我正在尝试在带有条件语句的循环中使用paste()函数,但是它不起作用。多个打印语句可以正常工作。请问周围有工作还是我做错了什么。

请忽略代码的逻辑。我只是想做一些可重复的事情来测试功能。

感谢您的时间。

下面是我尝试过的3种情况。

  1. 仅使用不带其他打印功能的paste(),就没有输出,并且看来我的代码没有任何作用。
  2. 我刚刚在else中尝试了paste()和print(),它会打印1-9并在满足if条件时跳过打印。
  3. 如果上述代码在if和else两者中都粘贴时运行,则效果很好。

仅供参考,paste()函数在外部循环中工作正常。

  x <- 1
for (i in 1:20){
  y <-x
  if (y == 10){
    paste("done at", y)
    break
  }else if (y==20){
    print("not done")
  }else {
    x<- y+1
  }
}
  x <- 1
for (i in 1:20){
  y <-x
  if (y == 10){
    paste("done at", y)
    break
  }else if (y==20){
    print("not done")
  }else {
    print(y)
    x<- y+1
  }
}
  x <- 1
for (i in 1:20){
  y <-x
  if (y == 10){
    print("done")
    break
  }else if (y==20){
    print("not done")
  }else {
    print(y)
    x<- y+1
  }
}

试图了解paste()是否在循环或条件语句中工作。

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是cat()。试试

x <- 1
for (i in 1:20){
  y <-x
  if (y == 10){
    cat("done at", y)
    break
  }else if (y==20){
    cat("not done")
  }else {
    x<- y+1
  }
}

如果要在输出中切换到新行,则必须添加"\n",例如:

cat("not done\n")