Использование вектора символов для ссылки и изменения других объектов - PullRequest
1 голос
/ 12 марта 2019

Итак, у меня есть большой список нестандартизированных имен векторов, с которыми я пытаюсь работать, с которыми нужно манипулировать одинаково, и у меня возникла проблема с поиском способа работать с ними в массовом порядке. , Я полагаю, что я могу сделать, это объединить все различные объекты в один большой вектор имен объектов и работать с полученным списком итеративно, используя строки символов в качестве указателей на фактические переменные.

Вот грубый пример типа установки, с которой я пытаюсь работать:

a <- c(1, 2)
b <- c(3, 4)
c <- c("a", "b")
...
z <- vector()

varlist <- ls(all = TRUE)

Я хочу иметь возможность использовать varlist [i], чтобы иметь возможность ссылаться на каждую из переменных по очереди для выполнения каких-либо операций над ними, а затем сохранять результат этой операции обратно в том же объекте.

До сих пор ссылаться на них не было проблемой, так как я могу использовать eval(as.symbol(varlist[i])) для отображения содержимого данного объекта в этом списке. Проблема в том, что попытка использовать тот же метод для хранения новых значений (пример ниже), похоже, не работает.

as.symbol(varlist[i]) <- "New Value"
eval(as.symbol(varlist[i] <- "New Value"

В каждом из этих случаев кажется, что <- объединяется с самой внешней функцией, чтобы сформировать функцию, которая не существует. Таким образом, в случае первого ответа мы получаем Error in as.symbol(varlist[i]) <- "New Value" : could not find function "as.symbol<-", а во втором мы получаем could not find function "eval<-".

Как я могу хранить новые данные в перечисленных переменных, и (так как я все еще плохо знаком с этим), есть ли лучший способ сделать эти типы массовых вычислений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...