我有描述一些节点之间的过渡,例如存储在data.table一些图形数据:R中找到的节点之间的最小距离/水平的曲线图像数据帧
lfs = data.table(from = c(NA, 'x', 'x', 'y'), to = c('x', 'y', 'p', 'z'), level = 0)
lfs
# from to level
#: NA x 0
#: x y 0
#: x p 0
#: y z 0
我想找到每个节点距起始节点的距离为NA
。预期结果如下:
lfs[ is.na(lfs$from) ]$level = 1
target = lfs$from %in% (lfs[ lfs$level == 1 ]$to)
lfs[target]$level = 2
target = lfs$from %in% (lfs[ lfs$level == 2 ]$to)
lfs[target]$level = 3
我想应该有更简单,更通用的解决方案,最有可能通过使用图形操作:
# from to level
#: NA x 1
#: x y 2
#: x p 2
#: y z 3
我可以在一个非常麻烦的方式如下解决这个问题函数在图形库,如igraph,但我不知道他们非常好,我不知道要在这些库中专门搜索什么。
如何使用图算法获得预期的输出或者您是否想过其他更简单的解决方案?
谢谢你,这的确解决了这个问题。你为什么不把它写成答案而不是评论?所以,每个人都能立即看到它。 –