загрузка данных projmanr в R - PullRequest
       0

загрузка данных projmanr в R

0 голосов
/ 18 февраля 2020

Мне нужно работать с этой библиотекой в ​​R ( projmanr ), но я не могу понять, как поместить данные в правильный формат. Для репликации я использую фрейм данных, который можно реплицировать, но мне нужно получить эти данные из CSV.

Мой фрейм данных

    pred1=list( c(),c(1),c(1),c(2) ,c(3),c(3), c(4,5),  c(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 pred1
 1  1   T1        3  NULL
 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)

R возвращает

Error in walk_ahead(all_tasks, new_ids, start_date) : 
Invalid predeccessor id. Using a predeccessor id for a task that does not exist.

Я думаю, это из-за значения NULL в кадре данных.

1 Ответ

0 голосов
/ 18 февраля 2020

Я вижу, что преобразование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...