Вы можете использовать функцию attach() в R, чтобы сделать объекты во фреймах данных доступными без фактического ввода имени фрейма данных.
Эта функция использует следующий базовый синтаксис:
attach(data)
В следующих примерах показано, как использовать эту функцию в различных сценариях со следующим фреймом данных:
#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#view data frame
df
team points assists rebounds
1 A 99 33 30
2 B 90 28 28
3 C 86 31 24
4 D 88 39 24
5 E 95 34 28
Пример 1: Использование attach() для выполнения вычислений
Обычно, если мы хотим вычислить среднее значение, медиану, диапазон и т. д. столбца во фрейме данных, мы будем использовать следующий синтаксис:
#calculate mean of rebounds column
mean(df$rebounds)
[1] 26.8
#calculate median of rebounds column
median(df$rebounds)
[1] 28
#calculate range of rebounds column
range(df$rebounds)
[1] 24 30
Однако, если мы используем attach() , нам даже не нужно вводить имя фрейма данных для выполнения этих вычислений:
attach(df)
#calculate mean of rebounds column
mean(rebounds)
[1] 26.8
#calculate median of rebounds column
median(rebounds)
[1] 28
#calculate range of rebounds column
range(rebounds)
[1] 24 30
Используя attach() , мы можем напрямую ссылаться на имя столбца, и R знает, какой фрейм данных мы пытаемся использовать.
Пример 2. Использование attach() для подбора регрессионных моделей
Обычно, если мы хотим подогнать модель линейной регрессии в R, мы будем использовать следующий синтаксис:
#fit regression model
fit <- lm(points ~ assists + rebounds, data=df)
#view coefficients of regression model
summary(fit)$coef
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.7071984 13.2030474 1.416885 0.29222633
assists 0.5194553 0.2162095 2.402555 0.13821408
rebounds 2.0802529 0.3273034 6.355733 0.02387244
Однако, если мы используем attach() , нам даже не нужно использовать аргумент данных в функции lm() , чтобы соответствовать модели регрессии:
#fit regression model
fit <- lm(points ~ assists + rebounds)
#view coefficients of regression model
summary(fit)$coef
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.7071984 13.2030474 1.416885 0.29222633
assists 0.5194553 0.2162095 2.402555 0.13821408
rebounds 2.0802529 0.3273034 6.355733 0.02387244
Обратите внимание, что результаты регрессии точно такие же.
Бонус: используйте detach() и search()
Вы можете использовать функцию search() для отображения всех объектов, прикрепленных в текущей среде R:
#show all attached objects
search()
[1] ".GlobalEnv" "df" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
И вы можете использовать функцию detach() для отсоединения объекта, который в данный момент отсоединен:
#detach data frame
detach(df)
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как очистить среду в R
Как очистить все графики в RStudio
Как напечатать несколько переменных в одной строке в R