У меня есть список объектов, которые я создал вручную, как это:
rand1 <- rnorm(1e3)
rand2 <- rnorm(1e6)
myObjects <- NULL
myObjects[[1]] <-rand1
myObjects[[2]] <-rand2
names(myObjects) <- c("rand1","rand2")
Я работаю над некоторым кодом, который укутывается объекты и поднимает их в S3. Затем у меня есть код в EC2, что я хочу захватить список myObjects и 'разъединить' его автоматически. В этом примере список только имеет два объекта, и имена известны, но как я кодирую это для обработки списков длины и каких-либо имен?
#pseudo code
for each thing in myObjects
thing <- myObjects[[thing]]
Я не могу вполне выяснить, как взять имена (myObjects) [1] и превратить его на название объекта, для которого я присвою содержание myObjects[[1]]. Я могу обработать цикличное выполнение, но создающий каждый объект отчасти подвесили меня. Я уверен, что это довольно просто, но я не могу вполне grok он.
Вы можете использовать assign
:
for(i in 1:length(myObjects)) assign(names(myObjects)[i], myObjects[[i]])
Чтобы расширить ответ Шейна:
mapply(assign, names(myObjects), myObjects, MoreArgs=list(envir = globalenv())
(Вы можете изменить globalenv ()
на другую среду.)