rにデータをツリー形式で保存したい。使用できるRのパッケージはありますか? データサンプル:
lat lon ,v1,v2,v3,parent,id
23.9917345,90.4195876,83,3,0,0,1
ここで、親列は現在の行の親 ID を表します
rにデータをツリー形式で保存したい。使用できるRのパッケージはありますか? データサンプル:
lat lon ,v1,v2,v3,parent,id
23.9917345,90.4195876,83,3,0,0,1
ここで、親列は現在の行の親 ID を表します
次のようにループせずに子を見つけることができますaggregate(id, by=list(parent=parent), paste, collapse=" ")
。
例:
> n <- 30; d <- data.frame(parent=sample(n,n,TRUE), id=1:n, value=runif(n))
> children <- with(d, aggregate(id, by=list(parent=parent), paste, collapse=" "))
> children
parent x
1 2 24
2 3 12 20 28
3 4 5
4 7 8 17 18
5 8 29
(中略)
これで、元のデータセットでこれをマージできます。
> names(children) <- c("id", "children")
> merge(d, children, all.x=TRUE)
id parent value children
1 1 13 0.319805784 <NA>
2 2 24 0.847229065 24
3 3 21 0.946230816 12 20 28
4 4 12 0.915684833 5
5 5 4 0.754628841 <NA>
(中略)