Стили ошибок [[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, ...). Это работает сейчас!