I am trying to unnest my data and collapse it into a "normal" data.frame. Currently the data looks like:
Nombre MetaData Data
1 Total, Ambos sexos titulación, titulacion, Total, total 197535
2 Total, Ambos sexos sexo, sexo, Ambos sexos, ambossexos 197535
3 Total, Hombres titulación, titulacion, Total, total 78636
4 Total, Hombres sexo, sexo, Hombres, hombres 78636
5 Total, Mujeres titulación, titulacion, Total, total 118899
6 Total, Mujeres sexo, sexo, Mujeres, mujeres 118899
Where the commas are lists. I want to map over the lists and unnest them into a data.frame. I can unnest some of the columns using:
y <- map(d, ~unlist(.x$MetaData))
yy <- data.frame(y[[1]])
yy
However, I cannot seem to put it into a nice data.frame.
Data:
Data <- list(Abs_1.1.1 = structure(list(Nombre = c("Total, Ambos sexos",
"Total, Ambos sexos", "Total, Hombres", "Total, Hombres", "Total, Mujeres",
"Total, Mujeres"), MetaData = list(list(Variable = list(Nombre = "titulación",
Codigo = "titulacion"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "sexo", Codigo = "sexo"), Nombre = "Ambos sexos",
Codigo = "ambossexos"), list(Variable = list(Nombre = "titulación",
Codigo = "titulacion"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "sexo", Codigo = "sexo"), Nombre = "Hombres",
Codigo = "hombres"), list(Variable = list(Nombre = "titulación",
Codigo = "titulacion"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "sexo", Codigo = "sexo"), Nombre = "Mujeres",
Codigo = "mujeres")), Data = list(list(Valor = 197535),
list(Valor = 197535), list(Valor = 78636), list(Valor = 78636),
list(Valor = 118899), list(Valor = 118899))), row.names = c(NA,
6L), class = "data.frame"), Abs_1.1.2 = structure(list(Nombre = c("Total, Total, Ambos sexos",
"Total, Total, Ambos sexos", "Total, Total, Ambos sexos", "Total, Total, Hombres",
"Total, Total, Hombres", "Total, Total, Hombres"), MetaData = list(
list(Variable = list(Nombre = "universidad", Codigo = "universidad"),
Nombre = "Total", Codigo = "total"), list(Variable = list(
Nombre = "rama de conocimiento", Codigo = "ramadeconocimiento"),
Nombre = "Total", Codigo = "total"), list(Variable = list(
Nombre = "sexo", Codigo = "sexo"), Nombre = "Ambos sexos",
Codigo = "ambossexos"), list(Variable = list(Nombre = "universidad",
Codigo = "universidad"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "rama de conocimiento", Codigo = "ramadeconocimiento"),
Nombre = "Total", Codigo = "total"), list(Variable = list(
Nombre = "sexo", Codigo = "sexo"), Nombre = "Hombres",
Codigo = "hombres")), Data = list(list(Valor = 197535),
list(Valor = 197535), list(Valor = 197535), list(Valor = 78636),
list(Valor = 78636), list(Valor = 78636))), row.names = c(NA,
6L), class = "data.frame"), Abs_1.1.3 = structure(list(Nombre = c("Total nacional, Total, Ambos sexos",
"Total nacional, Total, Ambos sexos", "Total nacional, Total, Ambos sexos",
"Total nacional, Total, Hombres", "Total nacional, Total, Hombres",
"Total nacional, Total, Hombres"), MetaData = list(list(Variable = list(
Nombre = "CCAA de su universidad", Codigo = "ccaadesuuniversidad"),
Nombre = "Total nacional", Codigo = "totalnacional"), list(
Variable = list(Nombre = "ámbito de estudio", Codigo = "ambitodeestudio"),
Nombre = "Total", Codigo = "total"), list(Variable = list(
Nombre = "sexo", Codigo = "sexo"), Nombre = "Ambos sexos",
Codigo = "ambossexos"), list(Variable = list(Nombre = "CCAA de su universidad",
Codigo = "ccaadesuuniversidad"), Nombre = "Total nacional",
Codigo = "totalnacional"), list(Variable = list(Nombre = "ámbito de estudio",
Codigo = "ambitodeestudio"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "sexo", Codigo = "sexo"), Nombre = "Hombres",
Codigo = "hombres")), Data = list(list(Valor = 197535),
list(Valor = 197535), list(Valor = 197535), list(Valor = 78636),
list(Valor = 78636), list(Valor = 78636))), row.names = c(NA,
6L), class = "data.frame"), Abs_1.1.4 = structure(list(Nombre = c("Ambos sexos, Total, Total",
"Ambos sexos, Total, Total", "Ambos sexos, Total, Total", "Ambos sexos, Total, Personas sin discapacidad",
"Ambos sexos, Total, Personas sin discapacidad", "Ambos sexos, Total, Personas sin discapacidad"
), MetaData = list(list(Variable = list(Nombre = "sexo", Codigo = "sexo"),
Nombre = "Ambos sexos", Codigo = "ambossexos"), list(Variable = list(
Nombre = "titulación", Codigo = "titulacion"), Nombre = "Total",
Codigo = "total"), list(Variable = list(Nombre = "discapacidad",
Codigo = "discapacidad"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "sexo", Codigo = "sexo"), Nombre = "Ambos sexos",
Codigo = "ambossexos"), list(Variable = list(Nombre = "titulación",
Codigo = "titulacion"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "discapacidad", Codigo = "discapacidad"),
Nombre = "Personas sin discapacidad", Codigo = "personassindiscapacidad")),
Data = list(list(Valor = 197535), list(Valor = 197535), list(
Valor = 197535), list(Valor = 195769), list(Valor = 195769),
list(Valor = 195769))), row.names = c(NA, 6L), class = "data.frame"),
Abs_1.1.5 = structure(list(Nombre = c("Ambos sexos, Total, Total",
"Ambos sexos, Total, Total", "Ambos sexos, Total, Total",
"Ambos sexos, Total, Personas sin discapacidad", "Ambos sexos, Total, Personas sin discapacidad",
"Ambos sexos, Total, Personas sin discapacidad"), MetaData = list(
list(Variable = list(Nombre = "sexo", Codigo = "sexo"),
Nombre = "Ambos sexos", Codigo = "ambossexos"), list(
Variable = list(Nombre = "universidad", Codigo = "universidad"),
Nombre = "Total", Codigo = "total"), list(Variable = list(
Nombre = "discapacidad", Codigo = "discapacidad"),
Nombre = "Total", Codigo = "total"), list(Variable = list(
Nombre = "sexo", Codigo = "sexo"), Nombre = "Ambos sexos",
Codigo = "ambossexos"), list(Variable = list(Nombre = "universidad",
Codigo = "universidad"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "discapacidad", Codigo = "discapacidad"),
Nombre = "Personas sin discapacidad", Codigo = "personassindiscapacidad")),
Data = list(list(Valor = 197535), list(Valor = 197535),
list(Valor = 197535), list(Valor = 195769), list(
Valor = 195769), list(Valor = 195769))), row.names = c(NA,
6L), class = "data.frame"), Abs_1.1.6 = structure(list(Nombre = c("Ambos sexos, Total, Total",
"Ambos sexos, Total, Total", "Ambos sexos, Total, Total",
"Ambos sexos, Total, Personas sin discapacidad", "Ambos sexos, Total, Personas sin discapacidad",
"Ambos sexos, Total, Personas sin discapacidad"), MetaData = list(
list(Variable = list(Nombre = "sexo", Codigo = "sexo"),
Nombre = "Ambos sexos", Codigo = "ambossexos"), list(
Variable = list(Nombre = "rama de conocimiento",
Codigo = "ramadeconocimiento"), Nombre = "Total",
Codigo = "total"), list(Variable = list(Nombre = "discapacidad",
Codigo = "discapacidad"), Nombre = "Total", Codigo = "total"),
list(Variable = list(Nombre = "sexo", Codigo = "sexo"),
Nombre = "Ambos sexos", Codigo = "ambossexos"), list(
Variable = list(Nombre = "rama de conocimiento",
Codigo = "ramadeconocimiento"), Nombre = "Total",
Codigo = "total"), list(Variable = list(Nombre = "discapacidad",
Codigo = "discapacidad"), Nombre = "Personas sin discapacidad",
Codigo = "personassindiscapacidad")), Data = list(
list(Valor = 197535), list(Valor = 197535), list(Valor = 197535),
list(Valor = 195769), list(Valor = 195769), list(Valor = 195769))), row.names = c(NA,
6L), class = "data.frame"))