Суммирование значений столбцов для (и только для) удаленных перевернутых дубликатов с их неудаленными перевернутыми оригиналами с помощью R

У меня есть набор данных, содержащий случаи преступлений, каждый из которых имеет местоположение (wardId), тип преступления (Primary.Type) и дату. Конечная цель состоит в том, чтобы превратить это в сеть с Primary.Type в качестве узлов, а веса их ребер зависят от того, сколько раз они совместно используют уникальную комбинацию Primary.Type и Ward.Date (два типа преступлений, которые происходят в одна и та же палата в день являются соединением, вес которого определяется количеством раз, когда это сочетание произошло в этот день).

После слияния в Ward.Date, wardId и DateI имеют список краев, содержащий Ward.Date («wardId yyyy-mm-dd»), Primary.Type.x («строка»), Primary.Type.y («строка»), Вес (числовой). Primary.Types были получены в результате слияния дублированной таблицы для создания списка краев, поэтому существуют обратные дубликаты.

С нетерпением ждем ваших предложений!

1 ответ

Вы можете сортировать значения в столбцах Primary.Type.xа также Primary.Type.yа также summariseданные с sumиз Weight.

      library(dplyr)

edgelist.primary.wards %>%
  group_by(Ward.Date, 
           Type1 = pmin(Primary.Type.x, Primary.Type.y), 
           Type2 = pmax(Primary.Type.x, Primary.Type.y)) %>%
  summarise(Weight = sum(Weight, na.rm = TRUE)) -> result

result

Это также может быть записано в базе R как:

      aggregate(Weight~Ward.Date + Type1 + Type2, transform(edgelist.primary.wards, 
          Type1 = pmin(Primary.Type.x, Primary.Type.y), 
          Type2 = pmax(Primary.Type.x, Primary.Type.y)), sum, na.rm = TRUE)
Другие вопросы по тегам