我有一个数据框(" mytable_df
"),如下所示:
ID1 ID2 ID3 value
a NA NA 300
a 1 NA 50
a 2 NA 30
b NA NA 400
b 1 NA 60
b 1 1 20
本质上,这是一个树结构,其中(例如)第2行和第3行是第1行的子节点,第5行是第4行的子节点,第6行是第5行中父节点的子节点。
对于每一行,我都尝试使用' root'来识别来自直接父级的值。行,1和4,只是有自己的价值......给我:
ID1 ID2 ID3 value parent
a NA NA 300 300
a 1 NA 50 300
a 2 NA 30 300
b NA NA 400 400
b 1 NA 60 400
b 1 1 20 60
我尝试过使用case_when和apply语句的组合,但我不知道如何比较当前行与父行等。
帮助! (请!)
*编辑Freddy的请求中的其他内容:
确定; tree
是我的数据框,url1 - 4
是我的ID
case_when (
is.na(tree$url2) ~ tree$n,
is.na(tree$url3) ~ tree$n[tree$url1 == tree$url1 & is.na(tree$url2)],
is.na(tree$url4) ~ tree$n[tree$url1 == tree$url1 &
tree$url2 == tree$url2 &
is.na(tree$url3)],
TRUE ~ tree$n[tree$url1 == tree$url1 &
tree$url2 == tree$url2 &
tree$url3 == tree$url3 &
is.na(tree$url4)]
)
所以在[]条件下,我希望在数据帧中扫描第一个树$ url1并匹配引用特定行的第二个树$ url1。