У меня есть оригинальный фрейм данных, который содержит уникальное значение в первом столбце, за которым следуют X (без минимального или максимального) строк, которые содержат значения, относящиеся к уникальному значению в первом столбце. Я ищу, чтобы найти количество уникальных пар значений из столбцов 2-инф. для каждого ряда. Данные выглядят как кадр данных ниже, но в большем масштабе. Например, «w» и «x» появлялись в одной строке 4 раза (строки 1, 3, 5, 7), «y» и «z» появлялись вместе в одной строке дважды (1, 6). Я хотел бы посчитать количество уникальных пар для всех строк.
x$`Order ID` 1 2 3 4 5
1 1 w x y z <NA>
2 2 x y <NA> <NA> <NA>
3 3 u v w x y
4 4 w <NA> <NA> <NA> <NA>
5 5 w x y <NA> <NA>
6 6 y z <NA> <NA> <NA>
7 7 t u v w x
Я попытался начать с использования setDT () из библиотеки data.table для подсчета количества уникальных строк в целом, а затем разбить его на пары уникальных значений в строках, но получите ошибку, что длины строк не равны (потому что они не равны). Я не очень хорошо разбираюсь в R, но мне интересно, какую функцию можно использовать для этого. Спасибо.
РЕДАКТИРОВАТЬ: Я также попробовал функцию count () из библиотеки plyr. Он находится на правильном пути, но учитывает только все уникальные строки, а не отдельные уникальные пары в строках.
library(plyr)
count(transposed[, -1])
X1 X2 X3 X4 X5 freq
1 t u v w x 1
2 u v w x y 1
3 w x y z <NA> 1
4 w x y <NA> <NA> 1
5 w <NA> <NA> <NA> <NA> 1
6 x y <NA> <NA> <NA> 1
7 y z <NA> <NA> <NA> 1
РЕДАКТИРОВАТЬ 2:
Желаемый вывод из этого подмножества данных:
Pair Frequency
1 tu 1
2 tv 1
3 tw 1
4 tx 1
5 uv 2
6 uw 2
7 ux 2
8 uy 1
9 vw 2
10 vx 2
11 vy 1
12 wx 4
13 wy 3
14 wz 1
15 xy 4
16 xz 1
17 yz 2
Подсчет количества различных комбинаций из 2 пар в каждой строке, а затем подсчет количества раз, когда эти комбинации появляются во всем наборе данных. Порядок не имеет значения (xy = yx).