Как удалить вершину NA (пустую) - PullRequest
1 голос
/ 19 июня 2020

Я создаю (неориентированный) график социальной сети с помощью пакета igraph, который я практиковал с подмножеством моих данных. Для этого вершина должна быть в двух столбцах, и тогда будут показаны все ассоциации. однако иногда вершина (индивидуальная, я работаю с животными) встречается одна, без ассоциаций. так это животное будет в левом столбце, а в правом столбце ничего нет, пустая ячейка.

Однако в пакете igraph R считает, что «NA» / ничего не является идентификатором животного, поэтому он делает из него вершину. В моем подмножестве я решил эту проблему следующим образом:

y <- data.frame(data$ID1, data$ID2)

ID1 и 2 - это коды считывателей пит-тегов для распознавания отдельных животных. это в основном их имя.

graph.data.frame(y, directed=FALSE)

Я называю этот график: net

net <- graph.data.frame(y, directed=FALSE)
net <- delete_vertices(net, "")

поэтому в коде, показанном выше, пустой значения, в которые был введен идентификатор животного, удаляются с графика. Я был взволнован, что добился этого, но, как я уже сказал, это было в подмножестве моих данных, которые я уже отредактировал вручную.

Для всего набора данных мне пришлось перебирать данные. поскольку животных наблюдали в больших группах, у меня было 8 столбцов с идентификаторами животных, которые были связаны вместе. это пришлось преобразовать в два столбца, в которых были охвачены все возможные перестановки в одном месте (поэтому для группы из 4 животных мне понадобилась комбинация 1-2; 1-3; 1-4; 2-3; 2-4 и 3-4 и группы варьируются от 1 до 8 животных (вершины)). Я сделал это с помощью пакетов tidyr и dplyr (и справки). когда в одном из столбцов нет значения (потому что это было отдельное существо) R говорит:

 Warning messages:  
 1: In graph.data.frame(y, directed = FALSE) :  
    In `d' `NA' elements were replaced with string "NA"  
 2: In `[<-.factor`(`*tmp*`, thisvar, value = "NA") :  
    invalid factor level, NA generated

Итак, на мой взгляд, он заменяет пустое пространство на NA , что также отображается, когда он сообщает R показать новые обработанные данные. однако трюк с удалением вершин больше не работает. он постоянно говорит "invalid vertex name". Я пробовал это с "", с "NA", NA, "<NA>" и всем логичным, что я мог придумать, но я не могу решить эту проблему.

Я надеюсь, что это ошибка, которую можно легко решить с помощью другого "или" или чего-то еще. У кого-нибудь есть идеи?

...