Стили ошибок [[id]]: индексирование вне границ в пакете "riverplot"

Я изо всех сил пытаюсь создать диаграмму Санки, используя пакет "riverplot". Мне не удалось создать минимальный пример игрушки, поэтому я должен включить объект riverplot, созданный makeRiver() Вот. makeRiver не выкинул никаких ошибок, поэтому думал, что это будет работать, но это не так. Я надеюсь, что у любого из вас есть идея.

Это объект речного участка, который я пытаюсь построить:

$edges
     ID N1 N2 Value
102 102  2 10     3
106 106  6 10     2
111 111  2 11     7
115 115  6 11     2
119 119  1 12     1
120 120  2 12    72
121 121  3 12     4
125 125  7 12     7
127 127  9 12     4
129 129  2 13    14
134 134  7 13     2
136 136  9 13     1
145 145  9 14     1
147 147  2 15     4
152 152  7 15     1
154 154  9 15     1
156 156  2 16     1
165 165  2 17    69
166 166  3 17     3
167 167  4 17     1
168 168  5 17     1
169 169  6 17     2
170 170  7 17     7
171 171  8 17     1
172 172  9 17     8

$nodes
   ID                        labels x
1   1                     Albanisch 1
2   2                      Arabisch 1
3   3             Arabisch;Englisch 1
4   4             Arabisch;Türkisch 1
5   5    Englisch;Kurdisch;Arabisch 1
6   6                      Kurdisch 1
7   7             Kurdisch;Arabisch 1
8   8              Syrisch;Arabisch 1
9   9                         keine 1
10 10                      Arabisch 2
11 11             Arabisch;Englisch 2
12 12                      Englisch 2
13 13          Englisch;Französisch 2
14 14 Englisch;Französisch;Arabisch 2
15 15                   Französisch 2
16 16          Französisch;Englisch 2
17 17                         keine 2

$styles
list()

attr(,"class")
[1] "list"      "riverplot"

призвание riverplot(river) ("река" - это имя переменной, в которой я сохранил объект), я получаю следующий вывод (извините, что сообщение об ошибке написано на немецком языке, оно говорит: "Index(ing) out of bounds"):

[1] "calculating positions"
[1] 21.9
   ID                        labels x
1   1                     Albanisch 1
2   2                      Arabisch 1
3   3             Arabisch;Englisch 1
4   4             Arabisch;Türkisch 1
5   5    Englisch;Kurdisch;Arabisch 1
6   6                      Kurdisch 1
7   7             Kurdisch;Arabisch 1
8   8              Syrisch;Arabisch 1
9   9                         keine 1
10 10                      Arabisch 2
11 11             Arabisch;Englisch 2
12 12                      Englisch 2
13 13          Englisch;Französisch 2
14 14 Englisch;Französisch;Arabisch 2
15 15                   Französisch 2
16 16          Französisch;Englisch 2
17 17                         keine 2
[1] "done"
[1] "drawing edges"
Fehler in styles[[id]] : Indizierung außerhalb der Grenzen

Я думаю, что я проследил проблему до функции riverplot:::getattr, но я не уверен в этом. Любая помощь?

1 ответ

На случай, если кто-то заинтересован в решении проблемы, которую я описал выше: я использовал числовые идентификаторы для узлов (1, 2, 3, ...) и ребер (101, 102, ...).

makeRiver() проверяет, дублированы ли идентификаторы между узлами и ребрами, и выдает ошибку, если это произойдет. Однако он НЕ проверяет, являются ли идентификаторы чисто числовыми, что, по-видимому, является источником ошибки.

Теперь я добавил "E" в начале идентификаторов ребер (E1, E2, ...) и "N" в начале идентификаторов узлов (N1, N2, ...). Это работает сейчас!

Другие вопросы по тегам