使用递归合并函数或其他东西查找父项的所有后代?

时间:2012-04-06 00:25:04

标签: r

所以我有一个大的data.frame。第一列是父,第二列是子。

  • 1 - > 2
  • 1 - > 3
  • 2 - > 3
  • 2 - > 4
  • 2 - > 5
  • 6 - > 7
  • 6 - > 8
  • 7 - > 9

依旧......

问题:对于父母的子样本,我想找到他们所有的后代。也就是说,对于一群父母,我需要他们的孩子,孙子等等......

输出示例:使用上面的数字,如果我想获得一个包含1的后代的data.frame,我会得到

  • 1 - > 2
  • 1 - > 3
  • 2 - > 3
  • 2 - > 4
  • 2 - > 5

但不要低于,因为这些不是1的后代。他们来自不同的家庭。

  • 6 - > 7
  • 6 - > 8
  • 7 - > 9

最好的方法是什么?

使用合并功能的自连接的递归函数?如果是这样,有什么好的例子吗?

或者是否已有包含此功能的包?

1 个答案:

答案 0 :(得分:0)

也许你想要拆分,但我不完全确定我清楚你想要什么:

DF <- data.frame(par=rep(1:4, each=4), child = 5:20, granchild = 21:36)
split(DF, DF$par)