Ссылаться на переменные по строке в цикле при нормализации имен нескольких переменных (assign и get, похоже, не работают)

#r

#r

Вопрос:

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

 library(magrittr) #the piping operator
library(rattle) #normVarNames()

datanames <- names(which(sapply(.GlobalEnv, is.data.frame))) 

for(name in datanames){
    names(name) %<>% normVarNames()
}
  

Комментарии:

1. Почему эти data.frames не объединены в список (по которому вы могли бы легко выполнить итерацию)? Забудьте о assign / get подходе. Это крайне плохая практика, а не то, как вы делаете это в R.

2. Что вы имеете в виду, говоря «вместе в списке»? Имена data.frames находятся под datanames

3. Если вы хотите выполнить итерацию по ним, они похожи в некоторых аспектах. Это означает, что хорошей практикой является объединение их в список (при их создании) вместо того, чтобы размещать их в свободном доступе в вашей глобальной среде. Поддерживайте порядок в своей глобальной среде!