Je cherche à récupérer les noms et niveaux de profondeur d'une liste imbriquée :
Code : Tout sélectionner
x <-
list(
A = list(A1 = list(A1w = NULL)),
B = list(B1 = list(B1x = NULL), B2 = list(B2y = NULL, B2z_ = NULL))
)
Code : Tout sélectionner
str(x)
# List of 2
# $ A:List of 1
# ..$ A1:List of 1
# .. ..$ A1w: NULL
# $ B:List of 2
# ..$ B1:List of 1
# .. ..$ B1x: NULL
# ..$ B2:List of 2
# .. ..$ B2y: NULL
# .. ..$ B2z_: NULL
Le résultat attendu serait :
Code : Tout sélectionner
c(A = 0, A1 = 1, A1w = 2, B = 0, B1 = 1, B1x = 2, B2 = 1, B2y = 2, B2z_ = 2)
# A A1 A1w B B1 B1x B2 B2y B2z_
# 0 1 2 0 1 2 1 2 2
À noter que les noms des sous-niveaux ressemblent au niveaux supérieurs pour l'exemple, mais en réalité peuvent n'avoir rien en commun.
Je pensais m'en sortir facilement avec une fonction récursive, mais apparemment ce n'est pas si simple (ou bien je ne suis pas réveillé ce lundi matin...).