Как использовать функцию get() в R для получения именованных объектов


Вы можете использовать функцию get() в R для получения именованных объектов.

Вот три наиболее распространенные функции get() в R:

1. get() — Получить один объект

get(" my_object ")

2. get0 () — получить один объект, используя собственное сообщение об ошибке, если он не найден

get0(" my_object", ifnotfound=" does not exist ")

3. mget() — получить несколько объектов

mget(c(" my_object1", " my_object2", " my_object3 "))

В следующих примерах показано, как использовать каждую функцию на практике.

Пример 1. Используйте get() для получения одного объекта

В следующем коде показано, как использовать функцию get() для получения одного объекта имени:

#define vector of values
data1 <- c(4, 5, 5, 6, 13, 18, 19, 15, 12)

#get vector of values
get(" data1 ")

[1] 4 5 5 6 13 18 19 15 12

Если именованный объект не существует, эта функция возвращает ошибку:

#define vector of values
data1 <- c(4, 5, 5, 6, 13, 18, 19, 15, 12)

#attempt to get vector of values
get(" data0 ")

Error in get("data0") : object 'data0' not found

Пример 2. Использование get0() для извлечения объекта с использованием пользовательского сообщения об ошибке

Мы также можем использовать функцию get0() для получения именованного объекта в R и использовать собственное сообщение об ошибке, если объект не найден:

#define vector of values
data1 <- c(4, 5, 5, 6, 13, 18, 19, 15, 12)

#attempt to get vector of values
get0(" data0", ifnotfound=" does not exist ")

[1] "does not exist"

Поскольку именованный объект «data0» не существует, функция get0() возвращает специальное сообщение об ошибке, которое мы создали.

Пример 3. Использование mget() для получения нескольких объектов

Мы можем использовать функцию mget() для получения нескольких именованных объектов в R:

#define three vectors
data1 <- c(4, 5, 5, 6, 13, 18, 19, 15, 12)
data2 <- c("A", "B", "C", "D")
data3 <- c(10, 20, 25, 30, 35)

#get all three vectors
mget(c(" data1", " data2", " data3 "))

$data1
[1] 4 5 5 6 13 18 19 15 12

$data2
[1] "A" "B" "C" "D"

$data3
[1] 10 20 25 30 35

Обратите внимание, что если бы мы просто попытались использовать функцию get() , был бы возвращен только первый именованный объект:

#define three vectors
data1 <- c(4, 5, 5, 6, 13, 18, 19, 15, 12)
data2 <- c("A", "B", "C", "D")
data3 <- c(10, 20, 25, 30, 35)

#attempt to get all three vectors
mget(c(" data1", " data2", " data3 "))

[1] 4 5 5 6 13 18 19 15 12

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в R:

Как использовать функцию c() в R
Как использовать функцию sprintf() в R
Как использовать функцию replace() в R

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