-1

rにデータをツリー形式で保存したい。使用できるRのパッケージはありますか? データサンプル:

lat lon ,v1,v2,v3,parent,id
23.9917345,90.4195876,83,3,0,0,1

ここで、親列は現在の行の親 ID を表します

4

1 に答える 1

3

次のようにループせずに子を見つけることができます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>

(中略)

于 2013-03-27T19:51:36.267 に答える