Как я уже говорил, я не думаю, что есть способ сделать алиасинг вместо , но для расчета вы можете сделать что-то вроде:
df1 <- data.frame(
"Descriptive A" = 12,
"Descriptive B" = 34,
"Descriptive C" = 25,
check.names = FALSE
)
Объект "алиасинг"может быть фреймом, но так как все, что вы делаете - присваиваете имя имени, оно эффективно обрабатывается именованным character
вектором:
df1_aliases <- c(
"B" = "Descriptive B",
"A" = "Descriptive A",
"C" = "Descriptive C"
)
Ваши шаги псевдонимов были бы преднамеренными/ post-translation для имен:
names(df1) <- names(df1_aliases)[ match(names(df1), df1_aliases) ]
df1
# A B C
# 1 12 34 25
### do stuff here ###
names(df1) <- df1_aliases[ match(names(df1), names(df1_aliases)) ]
df1
# Descriptive A Descriptive B Descriptive C
# 1 12 34 25
Может быть целесообразно перезаписать $.data.frame
и $<-.data.frame
для базовых операций со знаком доллара, но вам также необходимо перезаписать [.data.frame
, [[.data.frame
и, возможно, даже with
(в зависимости от ваших привычек доступа к кадрам) ... и эти переписанные функции могут не работать со всеми другими функциями, которые вы используете (в зависимости от пути поиска их функции / пространства имен).
Из-за сложности отслеживания всего, что касается фрейма, я настоятельно рекомендую вам сделать это как можно более явным: иметь только один набор имен, по которым известен каждый столбец (будь то оригинал или ваши псевдонимы), никогдаоба одновременно.Это означает, что шаги перевода / перевода не являются явными, и все, что работает с кадром, будет работать однозначно.