Ich habe einen Charakter Vektor von hierarchischen IDs wie diese:R: Erstellen Sie verschachtelte Liste von IDs in Zeichenvektor
ids <- c("0","1","2","3","1.1","1.2","1.3","2.1","2.2","2.11","2.21","2.22")
Die hierarchische Struktur ist wie folgt:
1
1.1
1.2
1.3
2
2.1
2.11
2.2
2.21
2.22
ich verwenden möchte diagonalNetwork()
aus dem Paket networkD3
, um diese Hierarchie zu visualisieren. Aber diagonalNetwork()
erfordert eine verschachtelte Liste definieren, die jeweils Knoten Kinder wie diese:
l <- list(name = "0",
children = list(
list(name = "1",
children = list(
list(name = "1.1"),
list(name = "1.2"),
list(name = "1.3")
)
),
list(name = "2",
children = list(
list(name = "2.1",
children = list(
list(name = "2.11")
)
),
list(name = "2.2",
children = list(
list(name = "2.21"),
list(name = "2.22")
)
)
)
)
)
)
Meine tatsächliche Satz von ids ist viel größer und tiefer (bis zu 6 Ziffern lang), so brauche ich einen Weg, um diese verschachtelte Liste zu erstellen automatisch . Ich begann einen data.frame mit der Erstellung, dass die IDs' Ziffern in mehreren Spalten wie dieser speichert:
df <- data.frame(root = 0,
a = c(1, 1, 1, 1, 2, 2, 2, 2, 2, 2),
b = c(NA, 1, 2, 3,NA, 1, 1, 2, 2, 2),
c = c(NA,NA,NA,NA,NA,NA, 1,NA, 1, 2))
Aber ich kann nicht denken Sie an eine Art und Weise weiter mit meiner Sorge zu bekommen. Gibt es einen vielversprechenden Ansatz?