Функция Paste () в loop / if, кажется, не работает так, как задумано в R - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь использовать функцию paste () в цикле с условными операторами, но она не работает.Несколько операторов печати работают нормально.Есть ли работа вокруг или я делаю что-то не так здесь?

Пожалуйста, игнорируйте логику кода.Я просто попытался сделать что-то воспроизводимое для проверки работоспособности.

Спасибо за ваше время.

Ниже приведены 3 сценария, которые я пробовал.

  1. Просто с помощью вставки () без какой-либо другой функции печати, нет выхода и кажется, что мой код ничего не делает.
  2. Я только что попытался вставить () с print () в else, который печатает 1-9 и пропускает печатькогда условие if выполнено.
  3. Выше кода, если он запускается с вставкой в ​​if и else, работает просто отлично.

FYI, функция 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 Ответ

2 голосов
/ 04 июля 2019

Я думаю, что вы ищете 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...