У меня проблемы с созданием ориентированного графа (с пакетом igraph) из моего набора данных (таблица данных из 10 столбцов) в R. Задача следующая: мне нужно построить ориентированный (сетевой) граф, гдеиндивидуальный X связан с индивидуальным Y, если X пригласил Y на платформу.В конечном итоге мне нужно определить размер самой длинной цепочки сети и рассчитать коэффициент кластеризации.
После фильтрации моего dt dt.user состоит из следующих 2 столбцов: user_id, inviter_id.
user_id: user identification
inviter_id: id of the user that invited this user to the platform
После очистки данных (удаления всех значений NA) я пытаюсь сделать эту работу, но я не уверен, что делаю это правильно, так как мой коэффициент кластеризации равен 0 (что кажетсяочень маловероятно):
all.users <- dt.users[, list(inviter_id, user_id)]
g.invites.network <- graph.data.frame(all.users, directed = TRUE)
Я пытался переключить направление соединений, но я все еще получаю те же результаты с точки зрения диаметра и коэффициента кластеризации:
all.users <- dt.users[, list(user_id, inviter_id)]
Мой вопрос: мой ориентированный граф неверен?Если так, что я делаю не так?Я считаю, что мой ответ неверен из-за коэффициента кластеризации, равного 0. Мне кажется очень маловероятным, что в этой сети вообще не образуется кластер.И я должен оставить ...list(inviter_id), user_id
вместо ...list(user_id, inviter_id)
?
Пример данных (40 строк):
dt.users <- data.table::data.table(
inviter_id = c(4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 23L, 22L, 31L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 63L, 4L, 4L, 4L),
user_id = c(17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 32L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 58L, 59L, 60L, 64L, 71L, 75L, 76L, 78L)
)
Любая помощь будет принята с благодарностью!