Итак, у меня есть большой список нестандартизированных имен векторов, с которыми я пытаюсь работать, с которыми нужно манипулировать одинаково, и у меня возникла проблема с поиском способа работать с ними в массовом порядке. , Я полагаю, что я могу сделать, это объединить все различные объекты в один большой вектор имен объектов и работать с полученным списком итеративно, используя строки символов в качестве указателей на фактические переменные.
Вот грубый пример типа установки, с которой я пытаюсь работать:
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<-"
.
Как я могу хранить новые данные в перечисленных переменных, и (так как я все еще плохо знаком с этим), есть ли лучший способ сделать эти типы массовых вычислений?