Почему добавление return () в цикл for имеет значение? - PullRequest
0 голосов
/ 26 апреля 2018

Я разыскиваю циклы в R, и мои данные отображаются как x < -data.frame(rnorm(5)) Затем я делаю цикл for следующим образом:

for (i in 1:nrow(x)){
  x$new[i] <- x$rnorm.5.[i] + 1
  return(x)
}

Возвращает

              rnorm.5.   new
            0.4036397   1.40364
            1.1424362   1.40364
            0.2314323   1.40364
            0.7248371   1.40364
            0.6802016   1.40364

со всеми значениями в столбце new одинаковыми.

Однако, если я удаляю return(x) или меняю его на print(x), вместо этого он дает мне другой df:

              rnorm.5.   new
            0.4036397   1.40364
            1.1424362   1.1424362
            0.2314323   1.2314323
            0.7248371   1.7248371
            0.6802016   1.6802016

Любая идея будет оценена!

1 Ответ

0 голосов
/ 26 апреля 2018

Когда вы пишете return(x), она завершает функцию, даже если она находится внутри цикла, поэтому цикл останавливается здесь и больше не повторяется.

Когда вы пишете print(x), он печатает, но функция и цикл продолжают работать

Дополнительная информация предоставлена ​​@Amar:

return будет передавать любое значение из функции / цикла для использования, в то время как print просто печатает на консоль. Например, если вы хотите, чтобы выходные данные функции были назначены для последующего использования, вы должны использовать return

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...