我有描述一些節點之間的過渡,例如存儲在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,但我不知道他們非常好,我不知道要在這些庫中專門搜索什麼。
如何使用圖算法獲得預期的輸出或者您是否想過其他更簡單的解決方案?
謝謝你,這的確解決了這個問題。你爲什麼不把它寫成答案而不是評論?所以,每個人都能立即看到它。 –