Перебор символьных переменных в R

#r #for-loop

#r #для цикла

Вопрос:

* Я прочитал связанные с этим вопросы здесь, но я изо всех сил пытаюсь адаптировать ответы к своему коду.

Я пытаюсь выполнить следующую команду:

 clist = c("QB", "WR", "TE", "RB")
for (i in unique(data$clist)) {
   data_i = subset(data, data$position == i)
}

  

чтобы создать подмножества моих данных для разных футбольных позиций (т.е. data_QB, data_WR, data_TE, data_RB).

Однако это не работает. Я понимаю, что это потому, что R не распознает, что я пытаюсь использовать «i» в качестве строковой переменной, но не знаю, как исправить мой код. Любые мысли были бы высоко оценены!

Ответ №1:

Мы можем использовать split

 lst1 <- split(data, data$position)
names(lst1) <- paste0("data_", names(lst1))
list2env(lst1, .GlobalEnv)
  

Или, если мы хотим использовать for цикл, используйте assign

 for(val in clist) {
   assign(paste0('data_', val), subset(data, position == val))
 }