Использование глобальных и локальных переменных в R - PullRequest
0 голосов
/ 24 мая 2018

Я новичок в программировании на R, я пытался создать цикл for, как упомянуто ниже, когда я запускаю код, я получаю правильный вывод.

Однако, когда я вижу только mtcars $ M, результат не совпадает с тем, что я получаю при запуске цикла.Есть ли что-то, что я пропустил во время кодирования и как мы имеем дело с глобальной и локальной переменной?

for (i in mtcars[,1]) {
  if(i >= 15){
   M <- print("the value is greter than 15")} else {
    M <-  print("the value is not greter than 15")
    mtcars$M <- M
    }
}

1 Ответ

0 голосов
/ 24 мая 2018

Вы получаете ошибку, потому что вы назначаете столбец M только тогда, когда значение не превышает 15. Таким образом, весь столбец будет таким же.Вы должны присвоить значение вне условия if-else, а также указать, в какой строке вы хотите сохранить значение.Если вы просто используете mtcars$M <- M, он назначит вектор M всем строкам этого столбца.

for (i in seq_along(mtcars$mpg)) {
  if(mtcars$mpg[i] >= 15){
    M <- "the value is greter than 15"
  } else {
    M <-  "the value is not greter than 15"
  }
  print(M)
  mtcars$M[i] <- M
}

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