Я вижу, что преобразование pred1
в вектор символов (вместо списка векторов) должно решить проблему следующим образом:
pred1 = list(c(), c(1), c(1), c(2), c(3), c(3), c(4,5), c(6,7) )
pred1 = sapply(pred1, paste0, collapse=",")
# Or
pred1 = c("", "1", "1", "2", "3", "3", "4,5 ", "6,7")
data = data.frame(
id=c(1,2,3,4,5,6,7,8),
name=c("T1","T2","T3","T4","T5","T6","T7","T8"),
duration=c(3, 4, 2, 5, 1, 2, 4, 3),
pred=cbind(pred1)
)
> data
# id name duration pred
# 1 1 T1 3
# 2 2 T2 4 1
# 3 3 T3 2 1
# 4 4 T4 5 2
# 5 5 T5 1 3
# 6 6 T6 2 3
# 7 7 T7 4 4,5
# 8 8 T8 3 6,7
Теперь вызывается:
critical_path(data)
дает следующий вывод:
# $critical_path
# [1] "1" "2" "4" "7" "8"
#
# $results
# id name start_date end_date duration is_critical pred_id
# 1 1 T1 2020-02-17 2020-02-20 3 TRUE
# 2 2 T2 2020-02-20 2020-02-24 4 TRUE 1
# 3 3 T3 2020-02-20 2020-02-22 2 FALSE 1
# 4 4 T4 2020-02-24 2020-02-29 5 TRUE 2
# 5 5 T5 2020-02-22 2020-02-23 1 FALSE 3
# 6 6 T6 2020-02-22 2020-02-24 2 FALSE 3
# 7 7 T7 2020-02-29 2020-03-04 4 TRUE 4 5
# 8 8 T8 2020-03-04 2020-03-07 3 TRUE 6 7
#
# $total_duration
# [1] 19
#
# $end_date
# [1] "2020-03-07"
#
# $network
# IGRAPH a1f826c DN-- 8 9 --
# + attr: name (v/c)
# + edges from a1f826c (vertex names):
# [1] 1->2 1->3 2->4 3->5 3->6 4->7 5->7 6->8 7->8