Иван Поздняков
можно и на русском найти, наверное. Суть вот в чем:
нужно создать матрицу, где по строкам айди, а по столбцам айпи
переменожить матрицу на транспонированную по правилам линейной алгебры
вот и получилась матрица смежности: каждая клетка матрица - сумма совместных пересечений
Причем, можно как создать сеть с вершинами id, так и сеть с вершинами ip
A <- matrix(c(1, 0, 0, 0, 0, 1, 1, 1, 0 , 1, 0 , 1), nrow = 3, dimnames = list(letters[1:3], c("one", "two", "three", "four")))
A
t(A) %*% A
A %*% t(A)
Чего то застрял я на матрице смежности. Привел свой frame к виду - в первом столбце id людей, во втором их айпишники. То есть это длинный формат, id людей, у которых более одного ip повторяются. Думал просто привести таблицу к широкому формату через pivot_wider и получится исходная матрица для транспонирования и перемножения, однако эта функция делает таблицу с одной строкой, все id людей, приходящихся на один ip кладет как бы в вектор. Как заставить вытянуть их в строки?)