Как использовать attach() в R (с примерами)


Вы можете использовать функцию 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.