1
をネストされたリストを作成し、私はこのような階層的なIDの文字ベクトルを持っている:R:文字ベクトルでのIDから
ids <- c("0","1","2","3","1.1","1.2","1.3","2.1","2.2","2.11","2.21","2.22")
次のような階層構造がある:
1
1.1
1.2
1.3
2
2.1
2.11
2.2
2.21
2.22
私が使用したいですこの階層を視覚化するためにnetworkD3
パッケージのdiagonalNetwork()
しかしdiagonalNetwork()
は、このような各ノードの子を定義するネストされたリストが必要です。
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")
)
)
)
)
)
)
idの私の実際のセットは、(長い6桁まで)はるかに大きいと深いので、私は自動的にこのネストされたリストを作成する方法が必要です。私はこの1つのようないくつかの列内のIDの数字を格納data.frameを作成して開始しました:
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))
しかし、私はさらに任意の私の関心事で取得する方法を考えることはできません。 もっと有望なアプローチはありますか?