Значение переменной доступа, где имя переменной хранится в строке в R

подобные вопросы подняты для других языков: C, sql, java и т.д. Но я пытаюсь сделать это в R.

У меня

ret_series <- c(1, 2, 3);
x <- "ret_series";

Как получить (1, 2, 3), вызвав некоторые функции/манипуляции на x, без прямого упоминания ret_series?

Ответ 1

Вы ответили в своем вопросе. Попробуйте get.

> get(x)
[1] 1 2 3

Ответ 2

Для однократного использования функция get работает (как уже упоминалось), но она недостаточно масштабируется для более крупных проектов. лучше хранить данные в списках или средах, а затем использовать [[для доступа к отдельным элементам:

mydata <- list( ret_series=c(1,2,3) )
x <- 'ret_series'

mydata[[x]]

Ответ 3

Что случилось с одним из следующих?

eval(as.name(x))

eval(as.symbol(x))

Ответ 4

Обратите внимание, что некоторые из приведенных выше примеров не будут работать для data.frame.

Например, данный

x <- data.frame(a=seq(1,5))

get("x$a") не даст вам x$a.