Je suis relativement nouveau à r, alors pardonnez-moi pour ce que je crois être une question relativement simple.
J'ai des données sous la forme p> où AE sont des gens et 1-5 sont des binaires de savoir si elles ont ou non cette qualité. J'ai besoin de faire une matrice d'A-E où la cellule A, B = 1 si la somme de toute qualité 1-5 pour la somme A & B à 2. (S'ils partagent au moins une qualité). Le simple 5x5 serait: p> J'ai alors besoin de résumer la matrice entière. (Ci-dessus serait 9). J'ai des milliers d'observations, donc je ne peux pas faire cela à la main. Je suis sûr qu'il y a un peu de code de code facile, je ne suis tout simplement pas assez expérimenté. P> Merci! P> Edit: J'ai importé les données à partir d'un fichier .csv Avec les colonnes (1-5 ci-dessus) comme variables, dans les données réelles, j'ai 40 variables. A-e sont des observations d'identification uniques des personnes, d'environ 2000. J'aimerais également savoir comment la convertir en une matrice, afin d'exécuter les grandes réponses que vous avez déjà fournies. Merci! P> p>
3 Réponses :
Vous pouvez utiliser Données: strong> < / p> externe code>, si m code> est votre matrice carrée:
Vous pouvez utiliser la multiplication de matrice ici puis régler la diagonale sur une, si nécessaire p> comme Davida pointe dans les commentaires plusieurs façons d'eux calculer le tcrossprod code> est un m% *% t (m) code> p> somme code> l ici est un p>
Merci! Je comprends cela, et cela devrait fonctionner, mais je dois poser une question plus facile, j'ai les données maintenant comme variables. Comment puis-je modifier cela en matrice sans avoir à taper dans tous les chiffres?
Je vous en prie. Si vous avez chaque ligne, vous pouvez utiliser rbind code> pour les lier ensemble, il formera un matrice code>. Sinon, si vos données sont un data.frame code>, vous pouvez utiliser as.matrix code>. Si celles-ci ne fonctionnent pas, pouvez-vous ajouter une petite modification à votre question montrant comment les données sont stockées, merci
Merci, j'ai ajouté la modification ci-dessus. J'ai importé les données d'un fichier .csv avec les colonnes (1-5 ci-dessus) en tant que variables, dans les données réelles que j'ai 40 variables. A-e sont des observations d'identification uniques des personnes, d'environ 2000. J'aimerais également savoir comment la convertir en une matrice, afin d'exécuter les grandes réponses que vous avez déjà fournies.
Vous n'avez donc qu'un seul jeu de données lus avec lis.csv code> qui a toutes les données?
Oui avec les têtes de colonne, qui sont les variables et les fichiers binaires de la sortie, un fichier .csv .csv
Hmm ... Donc, M <- AS.Matrix (YourData) CODE> fonctionne pour la convertir en matrice. Sinon, pouvez-vous poster un petit bit de vos données à l'aide de dput (YourData [1: 5, 1: 5]) code>. Merci
Laissez-nous Continuer cette discussion dans le chat .
Et ça? (Bien sûr, pas aussi élégant que la solution code> crossprod code>):