1
J'ai un data.frame comme suit.Création d'éléments hors-diagonale d'une matrice
> dat = matrix(c(0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6), ncol=4)
> dat = as.data.frame(dat)
> names(dat)[1]= "m1"
> names(dat)[2]= "m2"
> names(dat)[3]= "m3"
> names(dat)[4]= "m4"
> dat
m1 m2 m3 m4
1 0 1 0 2
2 0 0 0 3
3 1 1 0 4
4 1 1 1 5
5 1 1 1 6
Je voudrais créer une matrice (4 * 4), qui dans la diagonale des valeurs dat^2 et d'autre par exemple dat [1] * dat [2], .... Comment puis-je faire cela en R? Je sais que pour les éléments en diagonale que je peux faire
> colSums(dat^2)
m1 m2 m3 m4
3 4 2 90
Envisagez d'ajouter la matrice complète souhaitée à votre message. –
'crossprod (dat) 'est ce que vous cherchez? –