【发布时间】:2021-12-01 02:50:37
【问题描述】:
我有一个 data.frame 为我提供它的行的分层信息 (DF_in):
id parent_id
1 1 NA
2 2 NA
3 3 1
4 4 2
5 5 3
6 6 4
7 7 1
8 8 2
9 9 3
10 10 4
我想查找每一行的 root_id (DF_out):
id parent_id root_id
1 1 NA NA
2 2 NA NA
3 3 1 1
4 4 2 2
5 5 3 1
6 6 4 2
7 7 1 1
8 8 2 2
9 9 3 1
10 10 4 2
通常我更喜欢使用data.table,但这似乎需要递归解决方案,我不知道如何有效地解决这个问题。
DF_in <- data.frame(id = 1:10, parent_id = c(NA, NA, 1:4, 1:4))
# library(data.table)
# setDT(DF_in)
DF_out <- data.frame(id = 1:10, parent_id = c(NA, NA, 1:4, 1:4), root_id = c(NA, NA, rep(1:2, 4)))
【问题讨论】:
-
你应该看看包igraph
-
感谢您的提示!你有什么具体的功能吗?
标签: r data.table