#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. Если вы хотите выполнить итерацию по ним, они похожи в некоторых аспектах. Это означает, что хорошей практикой является объединение их в список (при их создании) вместо того, чтобы размещать их в свободном доступе в вашей глобальной среде. Поддерживайте порядок в своей глобальной среде!