Если я вас правильно понимаю, вам нужно сгладить матрицу.
Вы можете использовать as.vector
и rep
, чтобы добавить столбцы идентификаторов, например:
m = cbind(c(1,2,3),c(4,5,6),c(7,8,9))
row.names(m) = c('R1','R2','R3')
colnames(m) = c('C1','C2','C3')
d <- data.frame(i=rep(row.names(m),ncol(m)),
j=rep(colnames(m),each=nrow(m)),
score=as.vector(m))
Результат:
> m
C1 C2 C3
R1 1 4 7
R2 2 5 8
R3 3 6 9
> d
i j score
1 R1 C1 1
2 R2 C1 2
3 R3 C1 3
4 R1 C2 4
5 R2 C2 5
6 R3 C2 6
7 R1 C3 7
8 R2 C3 8
9 R3 C3 9
Обратите внимание, что этот код преобразует матрицу в data.frame
, поскольку имена строк и столбцов могут быть строковыми, и у вас не может быть матрицы с другим типом столбца.
Если вы уверенычто все имена строк и столбцов являются числами, вы можете привести его к матрице.