R: превращение элементов списка в объекты

У меня есть список объектов, которые я создал вручную, как это:

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 он.

6
задан JD Long 22 June 2010 в 15:37
поделиться

3 ответа

Вы можете использовать assign :

for(i in 1:length(myObjects)) assign(names(myObjects)[i], myObjects[[i]])
11
ответ дан 8 December 2019 в 05:53
поделиться

attach (myObjects)

6
ответ дан 8 December 2019 в 05:53
поделиться

Чтобы расширить ответ Шейна:

mapply(assign, names(myObjects), myObjects, MoreArgs=list(envir = globalenv())

(Вы можете изменить globalenv () на другую среду.)

5
ответ дан 8 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: