У меня есть таблица, которую я создал следующим образом
A_ID<-c(111,116,111,112,112,114,116,113,114,111,114,116,115,116,116)
U_ID<-c(221,221,222,222,223,223,223,224,224,225,225,225,226,226,226)
df_u_a<-data.frame(U_ID,A_ID)
myTab <- table(df_u_a) # count
myTab[] <- as.integer(as.logical(myTab)) # binary map
И последующую матрицу перекрестного произведения я создал следующим образом
CProd.Matrix <- crossprod(myTab[] %*% diag(1 / sqrt(colSums(myTab[]^2))))
Это дало следующие результаты
> myTab[]
A_ID
U_ID 111 112 113 114 115 116
221 1 0 0 0 0 1
222 1 1 0 0 0 0
223 0 1 0 1 0 1
224 0 0 1 1 0 0
225 1 0 0 1 0 1
226 0 0 0 0 1 1
> CProd.Matrix
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.0000000 0.4082483 0.0000000 0.3333333 0.0 0.5773503
[2,] 0.4082483 1.0000000 0.0000000 0.4082483 0.0 0.3535534
[3,] 0.0000000 0.0000000 1.0000000 0.5773503 0.0 0.0000000
[4,] 0.3333333 0.4082483 0.5773503 1.0000000 0.0 0.5773503
[5,] 0.0000000 0.0000000 0.0000000 0.0000000 1.0 0.5000000
[6,] 0.5773503 0.3535534 0.0000000 0.5773503 0.5 1.0000000
Я не знаю, как связать заголовки myTab[] с CProd.Matrix. Например, как:
111 112 113 114 115 116
111 1.0000000 0.4082483 0.0000000 0.3333333 0.0 0.5773503
112 0.4082483 1.0000000 0.0000000 0.4082483 0.0 0.3535534
113 0.0000000 0.0000000 1.0000000 0.5773503 0.0 0.0000000
114 0.3333333 0.4082483 0.5773503 1.0000000 0.0 0.5773503
115 0.0000000 0.0000000 0.0000000 0.0000000 1.0 0.5000000
116 0.5773503 0.3535534 0.0000000 0.5773503 0.5 1.0000000
Чего я хочу добиться, так это
1- чтобы иметь возможность запрашивать определенный номер, например 111, и получать значения. На данный момент мне удается запросить только строку/столбец, как показано ниже (но, например, я не могу запросить 111)
> CProd.Matrix [1,]
[1] 1.0000000 0.4082483 0.0000000 0.3333333 0.0000000 0.5773503
2- см. соответствующие заголовки для каждого номера, например
111 112 113 114 115 116
111 1.0000000 0.4082483 0.0000000 0.3333333 0.0 0.5773503
3- отсортировать значения как
111 116 112 114 113 115
111 1.0000000 0.5773503 0.4082483 0.3333333 0.0000000 0.0
Любые идеи о том, как достичь любого из вышеперечисленного?