Подсчет парных столбцов и агрегирование - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть фрейм данных, который связывает два фактора, таких как:

X       Y
A1      B2
A2      B3
A5      D6
B2      A1
B3      A2     

И я хотел бы посчитать парные вхождения, такие как:

 i      j      Count
 A1     B2       2
 A2     B3       2
 A5     D6       1

Как вы можете видеть порядокстолбца i и j на самом деле не имеет значения.Я пытался с table и dplyr с использованием group_by и суммирования (Count = n ()), но я не могу заставить его работать, потому что он подсчитывает каждую пару независимо, поэтому он не агрегирует A1-B2 и B2-A1.

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

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать apply с полем 1 для сортировки по ряду, а затем использовать функцию table для подсчета, т.е.

table(apply(df, 1, function(i)toString(sort(i))))

#A1, B2 A2, B3 A5, D6 
#     2      2      1 

ПРИМЕЧАНИЕ: Вы можете заключить результат вdata.frame и управляйте выводом в соответствии с вашими потребностями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...