, если у меня есть следующее:
mm <- matrix(0, 4, 3)
mm<-apply(mm, c(1, 2), function(x) sample(c(0, 1), 1))
> mm
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 0
[3,] 0 0 0
[4,] 1 0 1
Как вывести матрицу, которая выражает частоту или процентное соотношение различных столбцов, где оба значения = 1. Например - есть две строки из 4, где столбец 1 и столбец 2 равны 1 (= 0,5) и 1 строке из 4, где столбец 2 и столбец 3 = 1 (= 0,25), поэтому в этом случае мне потребуется:
[,1] [,2] [,3]
[1,] 1 0.5 0.5
[2,] 0.5 1 0.25
[3,] 0.5 0.25 1
I Мне не интересно сравнивать одни и те же столбцы, поэтому по умолчанию диагональ остается равной 1.
Я подумал, что могу получить где-то с cor(mm)
, где вместо этого может быть способ вывести совместимые частоты или ко-проценты коэффициентов корреляции, но это, похоже, не так. Но размеры конечного вывода должны быть в виде матрицы столбцов N на N, так как cor () выводит:
> cor(mm)
[,1] [,2] [,3]
[1,] 1.0000000 0.5773503 0.5773503
[2,] 0.5773503 1.0000000 0.0000000
[3,] 0.5773503 0.0000000 1.0000000
, но, очевидно, это коэффициенты корреляции, я просто хочу использовать вместо них частоты или доли.