Возникли проблемы при обобщении решения для очистки данных для функции в R - PullRequest
1 голос
/ 14 марта 2019

У меня есть вопрос об обобщении некоторого кода в функцию в R. Ниже приведен код, который я хочу обобщить:

#file name information 
years <-c("_1999.XPT","_2003.XPT","_2005.XPT","_2007.XPT","_2009.XPT","_2011.XPT","_2013.XPT","_2015.XPT")

  #create initial frame 
  assign("diabetes", get(paste0("diabetes",years[1])))

  #binding rest of frames 
  for(i in 2:length(years))
    {
      update_frame <- bind_rows(get("diabetes"),get(paste0("diabetes",years[i])))
      assign("diabetes", update_frame) 
    }

Основная идея заключается в том, что я хочу сделать вертикальное соединение (bind_rows) файлов нескольких лет в один фрейм данных.

Моя попытка решить эту проблему выглядит примерно так:

big_bind <- function(name) 
{
  #create initial frame 
  assign(name, get(paste0(name,years[1])))

  #binding rest of frames 
  for(i in 2:length(years))
    {
      update_frame <- bind_rows(get(name),get(paste0(name,years[i])))
      assign(name, update_frame) 
    }

}

big_bind("diabetes")

Решение, приведенное выше, не работает, и это приводит меня в замешательство, потому что оно работает, если я заменяю переменную имени на «диабет». Чтобы быть немного более конкретным, код работает без ошибок, но ничего не делает. Я думаю, что это как-то связано с тем, как R определяет переменные для функций. Кто-нибудь видит, что мне не хватает или есть решение?

...