У меня проблемы со списками, и unlist (), похоже, не помогает.
Вот проблема: я выполняю функцию над списком, используя lapply (). Эта функция разбивает объекты xts по определенным критериям, таким образом, она возвращает список из двух объектов xts. Результирующий список lapply () состоит из нескольких подсписок (в моем примере: вывод очень похож на list.2)
Пример:
library(xts)
#create three dummy xts objects
a<-c(1:10)
b<-c(2:5)
c<-c(6:9)
a.by<-as.POSIXct(a, tz="GMT", origin="1990-01-01 00:00:00")
b.by<-as.POSIXct(b, tz="GMT", origin="1990-01-01 00:00:00")
c.by<-as.POSIXct(c, tz="GMT", origin="1990-01-01 00:00:00")
xts.a<-xts(a, order.by=a.by)
xts.b<-xts(b, order.by=b.by)
xts.c<-xts(c, order.by=c.by)
# creating first list of objects a & b. this is passed to my function
list.1<-list(xts.a, xts.b)
# creating second list of objects a & b, c. this is similar to my output
list.2<-list(list.1, xts.c)
Цель: я хочу передать эти объекты xts другим функциям. Мне нужен список всех объектов xts в основном списке и во всех подсписках. В моем примере я хотел бы list (xts.a, xts.b, xts.c). Я хотел бы разделить подсписок, разбить его и основной список и повторно сопоставить с частями (объектами xts).
Проблемы: из-за загрузки данных я пытаюсь сделать это автоматически, а не только в описанной выше проблеме. Так что для более чем одного подсписка и не только в этом порядке, или только с тремя объектами в списке.
Мысли: пробовал работать с class () -> list.2 [class (list.2) == "list"]
Создание векторов подмножества (это, кажется, до сих пор работало лучше всего) -> subset_vector ‹-lapply (list.2, class), а затем использование этого вектора (плюс последовательность) для выбора списков -> list.2 [[последовательность [subset_vector == "list"]]]
Но все это кажется слишком сложным, должно быть более простое решение?
Заранее спасибо за помощь!
Бен