I have a config file for Mkdocs in Yaml that I'm trying to modify, and it requires a slightly strange nested list structure. After finding some code online that turned a dataframe into a standard nested list structure, I'm trying to modify it into the exact list structure I need.
nested_lists_current = list(
census = list(
acs = list(logrecno = 1, moe = 3,seq = 5),
geo = list(fileid = 2, geoid = 4,macc = 6)
)
)
nested_lists_ideal = list(
list(
census = list(
list(
acs = list(
list(logrecno = 1),
list(moe = 3),
list(seq = 5)
)
),
list(
geo = list(
list(fileid = 2),
list(geoid = 4),
list(macc = 6)
)
)
)
)
)
Currently, when using the yaml package, nested_lists_current parses into:
census:
acs:
logrecno: 1.0
moe: 3.0
seq: 5.0
geo:
fileid: 2.0
geoid: 4.0
macc: 6.0
and I need it to parse into:
- census:
- acs:
- logrecno: 1.0
- moe: 3.0
- seq: 5.0
- geo:
- fileid: 2.0
- geoid: 4.0
- macc: 6.0
Does anyone know how to transform current into ideal, in a way that is extensible to more items at each level, but not necessarily a higher level of nesting? Thanks.
I've tried using map_depth and lapply, along the lines of map_depth(0,~list(.x))
, but it resulted in a structure that would encapsulate both acs and geo into the same list.
You can write a helper function to do the transformation
Then if you run
You get
Basically the helper function recursively finds all the lists and turns them into nested lists.