Создание динамически именованных переменных в цикле for в R и присвоение нулевого значения всем новым переменным - PullRequest
0 голосов
/ 10 ноября 2019

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

Я не уверен, почему приведенный ниже код не работает.

weather <- data.frame("TAVG" = 51:52, "Location" = c("USA", "Canada"))

for (i in 30:60) {
  weather <- mutate(weather, paste0("hdd", i) = 0)
}

Буду очень признателен за любые советы или идеи о том, как заставить это работать.

1 Ответ

0 голосов
/ 10 ноября 2019

Это связано с цитированием в dplyr. Следующее должно работать.

for (i in 30:60) {
  weather <- mutate(weather, !!paste0("hdd", i) := 0)
}

Обратите внимание, что это может быть проще сделать с помощью базы R.

for (i in 30:60) {
  weather[paste0("hdd", i)] <- 0
}

Или просто отбросить цикл.

weather[paste0("hdd", 30:60)] <- 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...