Предположим, у меня есть функция, которая возвращает мне список из нескольких векторов. Предположим, что я хотел бы разделить этот список на небольшие списки с разным количеством векторов. Количество векторов в каждом списке отличается от одного списка к другому. Мне нужно создавать эти списки в порядке убывания.
Общий пример:
Предположим, у меня n
переменных. Тогда k = n:2
. Моя функция вернет мне список n(n-1)/2
векторов. Тогда количество новых подсписков будет n - 1
. Следовательно, мне нужно иметь n-1
разных списков. Количество векторов в каждом списке J = 1:k-1
.
Числовой пример:
Если n=4
, то k=4, 3, 2
, затем J=3,2,1
. Следовательно, моя функция вернет мне 6 векторов. Эти векторы должны храниться в разных списках. Количество векторов в каждом списке основано на J
. Следовательно, у меня будет 3 разных списка следующим образом:
- 3 вектора в первом списке.
- 2 вектора во втором списке.
- один вектор в последнем списке.
Другими словами, возвращаемый список (вывод моей функции) должен быть разбит на подсписки в порядке убывания на основе J
.
Моя функция очень сложная. Следовательно, я предоставлю список из 6 векторов в качестве вывода моей функции.
Предположим, моя функция вернула мне следующий список:
x <- list(x1=c(1,2,3), x2=c(1,4,3), x3=c(3,4,6), x4=c(4,8,4), x5=c(4,33,4), x6=c(9,6,7))
Как я могу разделить его на подсписки, как описано выше? Исключенный вывод:
x_sub1 <- list(x1=c(1,2,3), x2=c(1,4,3), x3=c(3,4,6))
x_sub2 <- list(x4=c(4,8,4), x5=c(4,33,4))
x_sub3 <- list(x6=c(9,6,7))
Я пробовал это:
x_sub <- list()
for(j in 1:(k-1)){
x_sub[[j]] <- x[[i]]
}
и, конечно, это не то, что я ожидал.
Есть идеи, пожалуйста? Как я генерирую его для произвольного числа векторов? например, как я могу применить идею разделения по n
векторам?
Большое спасибо за помощь.