Я создал несколько списков в списке и хотел бы, чтобы каждый элемент подписок был отдельным элементом на верхнем уровне.
Например, чтобы создать некоторые фиктивные данные:
pp <- lapply(10:15,function(y){
lapply(10:20,function(z){
as.data.frame(matrix(rnorm(z*y),nrow=z,ncol=y))
})
})
Это создает следующий вывод
> summary(pp)
Length Class Mode
[1,] 11 -none- list
[2,] 11 -none- list
[3,] 11 -none- list
[4,] 11 -none- list
[5,] 11 -none- list
[6,] 11 -none- list
где вы также можете сделать
> summary(pp[[1]])
Length Class Mode
[1,] 10 data.frame list
[2,] 10 data.frame list
[3,] 10 data.frame list
[4,] 10 data.frame list
[5,] 10 data.frame list
[6,] 10 data.frame list
[7,] 10 data.frame list
[8,] 10 data.frame list
[9,] 10 data.frame list
[10,] 10 data.frame list
[11,] 10 data.frame list
В результате результат будет просто создать новый список, который имеет примерно следующее:
new.pp[[1]] <- pp[[1]][[1]]
new.pp[[2]] <- pp[[1]][[2]]
но задавался вопросом, существует ли интеллектуальный или более эффективный метод простого удаления одного уровня списков, когда у вас есть списки в списках....
В идеале я ищу какую-то функцию, которая выполняет это для меня, так что, если, например, у меня было несколько уровней списков, вложенных друг в друга, а не только два, я могу повторно использовать функцию на каждом уровне, доведя каждый элемент до вершины списка в конце концов...